[Programmers #12910] - 나누어 떨어지는 숫자 배열

G_NooN·2024년 1월 8일
0

Algorithms

목록 보기
13/33
post-thumbnail

(Lv. 1) 나누어 떨어지는 숫자 배열 (문제 링크)

문제 설명

배열 arr와 숫자 divisor가 주어졌을 때,
arr의 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 return하는 solution 함수를 완성하라.

제한 조건

  1. arr는 자연수를 담은 배열이다.
  2. arr는 길이가 1 이상인 배열이다.
  3. 정수 i, j에 대해, i !== j 이면 arr[i] !== arr[j]이다.
  4. divisor는 자연수다.

입출력 예시


해결 방법

  1. Array.filter()를 사용하여 divisor로 나누어 떨어지는 element만 추출한다.
  2. dividedArray의 길이가 0이면 [-1]을 출력하고, 0이 아니면 Array.sort()를 사용하여 오름차순으로 정렬한다.

코드

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

  let dividedArray = arr.filter((element) => element % divisor === 0);

  answer = dividedArray.length === 0 ? [-1] : dividedArray.sort((a, b) => a - b);

  return answer;
}

시행착오

화살표 함수의 표현법

  • 초기 코드
// ...생략...
let dividedArray = arr.filter((element) => {
  element % divisor === 0;
});
// ...생략...
  • 결과 : 아무것도 나오지 않음

  • 원인 : 화살표 함수의 잘못된 표현

    • 화살표 함수에서 return 키워드를 생략한 경우 해당 문장의 중괄호{}세미콜론(;)도 같이 생략해야 한다.
// AS-IS
let dividedArray = arr.filter((element) => {element % divisor === 0;});

// TO-BE
let dividedArray = arr.filter((element) => element % divisor === 0);

주요 개념

  • Array.filter
  • 화살표 함수의 표현법
profile
쥐눈(Jin Hoon)

0개의 댓글