[programmers] 나누어 떨어지는 숫자 배열

HYl·2022년 4월 6일
0

배열의 원소 중 divisor로 나누었을 때, 나누어 떨어지는 원소를 오름차순으로 정렬해 리턴하기.


나의 풀이 방법

function solution(arr, divisor) {
  let answer = [];

  arr.sort((a, b) => a - b).forEach((v, i) => {
    if (v % divisor === 0) {
      answer.push(v)
    } 
  })

  return answer.length > 0 ? answer : [-1];
}

console.log(solution([3, 2, 6], 10))

제로초님의 풀이방법

[5,9,7,10]과 5가 주어지면 [5, 10]을 리턴해야 합니다. 아무것도 없으면 [-1]을 리턴합니다.

역시나 filter로 쉽게 필터링할 수 있습니다. 근데 [-1]을 리턴해야하는 조항 때문에 한 줄로 못 끝내서 짜증이 나네요(한 줄로 하면 코드가 너무 지저분해집니다)

function solution(arr, divisor) {
  const answer = arr.filter(el => el % divisor === 0);
  return answer.length ? answer.sort((p, c) => p - c) : [-1];
}

마지막에 정답 배열의 개수로 오름차순 정렬을 할지, [-1]을 리턴할지 결정하고 있습니다.

profile
꾸준히 새로운 것을 알아가는 것을 좋아합니다.

0개의 댓글