본문 바로가기

코딩테스트

[프로그래머스] level1. 나누어 떨어지는 숫자 배열 ( javascript)

반응형

문제

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

의식의 흐름

  1. filter로 divisior 로 나눈 목이 0 인거 걸러주면 끝
  2. sort로 오름차순 정렬
  3. 빈 배열 체크하고 처리 => 어떻게 하지? => 검색해보니까 length로 체크하더라.
    빈 배열은 자바스크립트에서 'true' 였다. 빈 배열 나타내는게 '',[] 등 많은데 뭔가 이상해서 length로 판단하는게 나을 것 같다.

초기 코드

function solution(arr, divisor) {

    const answer = arr.filter((el)=> el%divisor ==0)
    if (answer.length === 0 ) { //answer == '' or answer == false 도 가능
        answer.push(-1)
    }
    answer.sort((a,b)=>a-b)
    return answer;
}

다른이들의 정답

function solution(arr, divisor) {
    var answer = arr.filter(v => v%divisor == 0);
    return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
}

이분은 length를 길이를 보고 판단하는 3항연산자로 처리했다.

참조: true false

반응형