📝 문제풀이/프로그래머스

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

NoHack 2022. 2. 27. 04:26
728x90

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한 조건

  • arr은 자연수를 담은 배열입니다.
  • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
  • divisor는 자연수입니다.
  • array는 길이 1 이상인 배열입니다.

문제 풀이

const solution = (arr, divisor) => {
  // v % divisor === 0으로 해도 됩니다.(0의 반전은 1)
  const answer = arr.filter((v) => !(v % divisor)).sort((a, b) => a - b);
  return answer.length ? answer : [-1];
};

const inputs = [
  [[5, 9, 7, 10], 5],
  [[2, 36, 1, 3], 1],
  [[3, 2, 6], 10],
];
inputs.forEach((input) => console.log(solution(...input)));

이 문제는 divisor로 나누어 떨어지는 값들만 filter로 추릴 수 있으면 간단히 해결 가능합니다.