본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Programmers] level 1: 나누어 떨어지는 숫자 배열 by JavaScript

by codingBear 2022. 7. 9.
728x90
반응형

 이번 문제를 풀어 보고 싶다면? 아래 링크를 클릭하세요!

 문제 풀러 가기!


 이번 문제는 filter() 메서드 혹은 for 반복문을 활용하면 쉽게 풀어낼 수 있는 문제이다. for 반복문으로 풀 경우 주어진 숫자 배열 arr를 for 반복문으로 탐색하며 탐색 중인 값을 divisor로 나누었을 때 나머지가 0이라면 정답 배열에 담아 반환하면 된다. filter() 메서드를 활용할 경우에도 마찬가지로 탐색하는 값 값들 가운데 divisor로 나누었을 때 나머지가 0인 답만을 골라내면 된다. 이때 0은 false로 취급한다는 점에서 착안하여 '!' 연산자를 활용해 false인 값(나머지가 0인 값)들을 true로 만들어 해당되는 값들만을 배열에 담아 반환할 수도 있다.

 

Solutions

Solutions
function solution(arr, divisor) {
  /* filter() Ver. */
  const answer = arr.filter((v) => v % divisor === 0).sort((a, b) => a - b);
  const answer = arr.filter((v) => !(v % divisor));
  return answer.length > 0 ? answer : [-1];
  
  /* for...of & forEach() Ver. */
  let answer = [];
  arr.forEach(v => v % divisor === 0 ? answer.push(v) : '')
  for (const num of arr) if (num % divisor === 0) answer.push(num);
  answer.sort((a, b) => a - b);
  return answer.length > 0 ? answer : [-1];
}
728x90
반응형

댓글