나누어 떨어지는 숫자 배열
2023. 4. 11. 11:22ㆍ스터디/ALGORITHM
나누어 떨어지는 숫자 배열
코딩테스트 연습 > 연습문제 > 나누어 떨어지는 숫자 배열
문제 설명
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] |
[3, 2, 6] | 10 | [-1] |
arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.
문제 풀이
function solution(arr, divisor) {
let returnMap=[]
let mapped = arr.map((x)=>(x%divisor===0?{x,isDivisible : true}:{x,isDivisible : false}))
mapped.sort((a,b)=>(a.x-b.x)).map(function(a){
if(a.isDivisible){
returnMap.push(a.x)
}
})
return returnMap.length === 0?[-1]:returnMap
}
코드 리뷰
sort()
메서드 콜백함수 조건을 이용해서 간단히 정렬filter()
메서드 사용
function solution(arr, divisor) {
const mapped = arr.filter(x => x % divisor === 0).sort((a, b) => a - b);
return mapped.length > 0 ? mapped : [-1];
}
'스터디 > ALGORITHM' 카테고리의 다른 글
수박수박수박수박수박수? (0) | 2023.04.11 |
---|---|
문자열 다루기 기본 (0) | 2023.04.11 |
2016년 (0) | 2023.04.11 |
x만큼 간격이 있는 n개의 숫자 (0) | 2023.04.11 |
최소직사각형 (0) | 2023.04.10 |