★ 문제
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
(arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
)
★ 문제 해결 과정
1. for문을 사용하여 조건에 해당하는 객체만 배열안에 넣는다.
2. 해당되는 객체가 아무것도 없으면 -1을 넣는다.
3. sort를 사용하여 오름차순으로 배열한다.
최근 너무 for문만 사용하는 것 같아 다른 병법으로도 풀어보았다.
1. filter함수를 사용하여 조건에 해당되는 객체만 걸러낸다.
2. 삼항연산자를 사용해 해당되는 객체가 없을 경우(true인 경우) -1을, 객체가 있는 경우(false인 경우) sort함수를 사용해 객체를 오름차순으로 배열한 값을 출력한다.
★ 제출한 문제 답안
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(function (a, b) {
return a - b;
});
return answer;
}
function solution(arr, divisor) {
const answer = arr.filter(num => num % divisor===0);
return answer.length === 0?[-1]:answer.sort((a,b) => a-b);
}
'스파르타 (React_6기) 본캠프' 카테고리의 다른 글
2024. 08. 26. (알고리즘 - 핸드폰번호 가리기) (0) | 2024.08.27 |
---|---|
2024. 08. 23. (알고리즘 - 음양더하기) (0) | 2024.08.26 |
2024. 08. 21. (알고리즘 - 서울에서 김서방찾기) (0) | 2024.08.21 |
2024. 08. 20. (알고리즘 - 콜라츠 추측) (0) | 2024.08.21 |
2024. 08. 19. (알고리즘 - 두 정수의 합) (0) | 2024.08.20 |