프로그래머스/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]
반응형