728x90
반응형
나누어 떨어지는 숫자 배열
설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
제한 사항
arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
arr | divisor | return |
---|---|---|
[5, 9, 7, 10] | 5 | [5, 10] |
[2, 36, 1, 3] | 5 | [1, 2, 3, 36] |
[3,2,6] | 5 | [-1] |
풀이
function solution(arr, divisor) {
const answer = arr.filter(el => el%divisor ==0);
(answer.length==0) ? answer.push(-1) : answer.sort((a,b)=> a - b)
return answer
}
해설
이번 문제는 filter 메소드와 push, sort 메소드를 이용해서 풀이
하였습니다. 우선 arr로 들어오는 배열을 filter메소드를 사용해 arr의
요소들을 divisor로 나누었을때 0이 되는 요소들을 answer 변수에
담았습니다. 또한 삼항 연산자를 사용하여 answer에 요소가 들어오지
못하면 length 메소드를 사용하면 길이가 0이 나오기 때문에 이때
true이면 배열에 -1을 추가하고 틀렸다면 다른 요소들이 들어가 있기
때문에 sort를 사용하여 오름차순으로 정렬합니다.
다른사람 풀이
function solution(arr, divisor) {
var answer = [];
arr.map((o) => {
o % divisor === 0 && answer.push(o);
})
return answer.length ? answer.sort((a, b) => a - b) : [-1];
}
해설
map을 사용한 풀이를 가져왔습니다. map은 우선 배열을 탐색하여
요소들을 순서대로 불러 반환 값을 새로운 배열을 만듭니다. o는 arr의
요소를 담고 있고 이 요소를 && 논리연산자를 사용하여 divisor로 나누어
떨어지는 배열 o의 요소들을 배열변수 answer에 저장하고 삼항연산자를
사용하여 불린 값에 따라 정렬과 -1값을 반환하도록 하였습니다
반응형
'프로그래머스' 카테고리의 다른 글
[programmers]핸드폰 번호 가리기 (2) | 2022.11.07 |
---|---|
[programmers]수박수박수박수박수박수? (1) | 2022.11.07 |
[programmers]평균 구하기 (2) | 2022.11.03 |
[programmers]약수의 합 (3) | 2022.11.02 |
[programmers]짝수와 홀수 (1) | 2022.11.02 |