프로그래머스/level 1
[프로그래머스] 나누어 떨어지는 숫자 배열
binaryJournalist
2021. 9. 23. 20:16
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
1)
처음 제출한 풀이
function solution(arr, divisor) {
var answer = arr.filter((item) => item % divisor === 0).sort((a, b) => a - b);
return answer.length > 0 ? answer : [-1];
}
2)
reduce 이용한 풀이
1번이 더 나은 듯
function solution(arr, divisor) {
let answer = arr.reduce((acc, curr) => {
if (curr % divisor === 0) acc.push(curr);
return acc;
}, []).sort((a, b) => a - b);
return answer.length ? answer : [-1];
}
* 더 빠르게 하려면 sort를 return 절 안에 넣는 게 낫다.
** Java
import java.util.*;
class Solution {
public int[] solution(int[] arr, int divisor) {
int[] answer = Arrays.stream(arr).filter(x -> x % divisor == 0).toArray();
Arrays.sort(answer);
return answer.length > 0 ? answer : new int[] {-1};
}
}
** Python
def solution(arr, divisor):
answer = [i for i in arr if i % divisor == 0]
return sorted(answer) if len(answer) > 0 else [-1]
반응형