반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12910
2. 설명
만약 배열의 값이 divisor로 나누어 떨어진다면 반환할 배열에 push한다.
만약 반환할 배열(answer)에 아무것도 없으면, 즉 어떤 것도 나누어떨어지지 않아 길이가 0이면 -1을 리턴한다.
이 문제를 풀 때 조심해야할 부분은 정렬이다.
내장된 sort메소드를 사용하면 의도치 않은 결과가 나올 수 있기 때문이다.
만약 2와 10을 비교해야할 때, sort를 사용한다면 10이 2보다 작다고 나온다.
이는 '10'을 문자열로 인식하여 '1' 을 보고 2보다 작다고 판단되기 때문이다.
자바스크립트에서 정렬을 해줄 때에는 인접한 두 수의 '차'를 가지고 판단한다.
해당 코드는 오름차순을 해주는 코드이다.
answer.sort(function (a, b) {
return a - b;
});
내림차순 코드는 이렇다. 화살표함수를 사용해주면 더 간결하게 표현 할 수 있다.
arr.sort((a, b) => b - a);
해당 코드를 사용하여 오름차순 정렬을 마치면 answer를 리턴해준다.
3. 코드
function solution(arr, divisor) {
var answer = [];
for (let i = 0; i < arr.length; i++){
if (arr[i] % divisor == 0){
answer.push(arr[i]);
}
}
if (answer.length === 0){
answer.push(-1);
}
answer.sort(function (a, b) {
return a - b;
});
return answer;
}
반응형
'프로그래머스 > 구현' 카테고리의 다른 글
[구현] 프로그래머스 '최대공약수와 최소공배수' - js (0) | 2022.09.19 |
---|---|
[소수] 프로그래머스 '소수 찾기' - js (0) | 2022.09.19 |
[구현]프로그래머스 '부족한 금액 계산하기' - js (0) | 2022.09.16 |
[피보나치]프로그래머스 '피보나치 수' - js (0) | 2022.09.16 |
[일반] 프로그래머스 '콜라츠 추측' - js (0) | 2022.09.16 |