풀이
function solution(arr, divisor) {
var answer = [];
for (let i = 0; i<=arr.length; i++) {
if (arr[i] % divisor === 0)
answer.push(arr[i]);
}
return answer.length === 0 ? [-1] : answer.sort((a, b) => a - b);
}
solution 는 arr 와 divisor 를 받는다
arr 길이많큼 돌아가는 for 문을 적었다
돌아갈때마다 arr 에 divisor 를 나누었을떄 나머지가 0 이 되면 그 수를 answer 에다가 push 를 한다
answer 에 아무것도 push 가 안되어서 길이가 0 일때 arr [-1] 값을 return 해준다.
answer 안에 무언가가 있다면 낮은순부터 높은순으로 정렬을 해주고 그값을 return 해준다.
다른사람 풀이:
function solution(arr, divisor) {
var answer = [];
for (let element of arr) {
if (element % divisor === 0)
answer.push(element);
}
return answer.length === 0 ? [-1] : answer.sort((a, b) => a - b);
}
그동안 for ( let i = 0; i < a; i++) 를 써왔는데
for (let element of a) 를 보니 저게 더 쉬운거 같다. 참고를 해야겟다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of
function solution(arr, divisor) {
var answer = arr.filter(v => v%divisor == 0);
return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
}
이분은 arr.filter 를 쓰셧다. 더욱 코드가 정갈해진다.
역시 array method 들을 공부해야겟다
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array
'코드 풀이' 카테고리의 다른 글
문자열 다루기 기본 (0) | 2022.03.11 |
---|---|
내적 (0) | 2022.03.11 |
부족한 금액 계산하기 (0) | 2022.03.11 |
x만큼 간격이 있는 n개의 숫자 (0) | 2022.03.11 |
핸드폰 번호 가리기 (0) | 2022.03.11 |