-
안녕하세요. 오늘은 자바스크립트 알고리즘 나누어 떨어지는 숫자 배열 을 풀어보았습니다.
문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.제한 사항
- arr은 자연수를 담은 배열입니다.
- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
- divisor는 자연수입니다.
- array는 길이 1 이상인 배열입니다.
입출력 예
문제 풀이
function solution(arr, divisor) { var answer = []; for(let i = 0; i < arr.length; i++){ if(arr[i] % divisor === 0){ answer.push(arr[i]); }; }; answer.sort(function(a, b){return a - b}); if (answer.length === 0){ answer.push(-1); }; return answer; }; // 아래는 테스트 코드입니다. console.log(solution([10,126,9,7,8], 2)); console.log(solution([1,3,5,7], 2));
저의 풀이입니다.
우선 매개변수 arr의 length 값만큼 for 반복문을 사용하여 arr[i] 를 divisor 로 나누고 나머지가 0이 되는 요소들을
answer 변수에 push(); 를 사용하여 넣어줍니다.
그 후 answer 를 sort() 메소드를 이용하여 순서대로 정렬해주고
answer.length 값이 0 일때는 answer 에 -1를 push() 해줍니다.
(divisor로 나누어 떨어지는 요소가 하나도 없다면 -1 를 리턴해주어야 하기 때문에)
마지막으로 다른 사람들의 풀이를 보면서 글 마치겠습니다.
다른 사람들의 풀이
function solution(arr, divisor) { var answer = []; arr.map((o) => { o % divisor === 0 && answer.push(o); }) return answer.length ? answer.sort((a, b) => a - b) : [-1]; }
'코딩 기록 > 자바스크립트 알고리즘' 카테고리의 다른 글
(자바스크립트 알고리즘) K번째 수 - kimyang-sun (0) 2020.01.27 (자바스크립트 알고리즘) 완주하지 못한 선수 - kimyang-sun (0) 2020.01.27 (자바스크립트 알고리즘) 문자열 내 p와 y의 개수 - kimyang-sun (0) 2020.01.27 (자바스크립트 알고리즘) 자연수 뒤집어 배열로 만들기 - kimyang-sun (0) 2020.01.26 (자바스크립트 알고리즘) 문자열 다루기 기본 - kimyang-sun (0) 2019.12.21 댓글