처음에 내가 생각한 방식 역시 filter를 사용하여 삼항연산자로 푸는 방식이었다.
하지만 문법적으로 자잘한 에러가 났고 배열 메소드의 사용법을 잘 익혀야겠다고 생각하게 되었다.
특히 answer에 arr.filter를 할당하는 것이 헷갈렸던 점이다. filter를 쓰고 또 조건문에서 push를 써야된다고 생각하니 로직이 꼬였다.
function solution(arr, divisor) {
var answer = arr.filter(v => v%divisor == 0);
return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
}
결국 문법적인 에러에 계속 부딪혀 푸는 방식을 수정하여
function solution(arr, divisor) {
var answer = [];
for(i=0; i<arr.length; i++) {
if(arr[i] % divisor == 0) {
answer.push(arr[i]);
}
}
if(answer.length == 0) {
answer.push(-1);
}
answer.sort((a,b) => a-b);
return answer;
}
이런 방식으로 풀긴 했지만, 훨씬 길고 메모리 낭비가 심하다.
'내용 복습 > 알고리즘' 카테고리의 다른 글
[JS] 프로그래머스 - 부족한 금액 계산하기 (0) | 2024.02.05 |
---|---|
프로그래머스 1단계 내적 - arr.reduce (0) | 2024.01.31 |
프로그래머스 1단계 - x만큼 간격이 있는 n개의 숫자 (0) | 2024.01.11 |
프로그래머스 0단계 - 각도기 (1) | 2024.01.04 |
Math 내장 객체 (0) | 2024.01.03 |