🍀 코딩 테스트/프로그래머스

LV1 - 나누어 떨어지는 숫자 배열

놀러와요 버그의 숲 2022. 7. 12. 16:33
728x90
반응형

 

풀이

function solution(arr, divisor) {
  var answer = [];
  arr.every((num) => num % divisor !== 0)
    ? (answer = [-1])
    : arr
        .sort((a, b) => a - b)
        .map((element) => {
          if (element % divisor === 0) {
            answer.push(element);
          }
        });
  return answer;
}

이번에 문제를 풀면서 array.every()를 처음 써보았는데 효율이 좋았다.

조건에서 divisor로 나누어 떨어지는 element가 하나도 없다면을 어떻게 처리해주어야할지 고민이었는데,

every()함수를 사용하여 나머지가 모두 0이 아니라면 [-1]을 반환하도록 하였다. 

그외의 경우는 map()을 이용하여 나머지가 0인것만 고른다음에 answer라는 새로운 배열에다가 push를 해주었다.

그리고 이 모두를 한번에 표현하고 싶어서 삼항연산자를 이용하였다. 

'🍀 코딩 테스트 > 프로그래머스' 카테고리의 다른 글

LV1 - 문자열 내 마음대로 정렬하기  (0) 2022.07.13
LV1 - 두 정수 사이의 합  (0) 2022.07.13
LV1 - 같은 숫자는 싫어  (0) 2022.07.12
LV1 - 가운데 글자 가져오기  (0) 2022.07.12
LV1 - 2016년  (0) 2022.07.12