내용 복습/알고리즘
프로그래머스 1단계 - 나누어 떨어지는 숫자 배열
jskim4695
2024. 1. 22. 14:52
처음에 내가 생각한 방식 역시 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;
}
이런 방식으로 풀긴 했지만, 훨씬 길고 메모리 낭비가 심하다.