본문 바로가기

Dev/Algorithm

알고리즘 문제 | 프로그래머스 - 나누어 떨어지는 숫자 배열

반응형

문제

 

생각하자ㅏㅏ

 

array 안에 자연수 element들이 있는데 그걸 divisor로 나눴을 때 나눠진다면 그 element를 리턴해야 돼!

그리고 divisor로 나누어지는 element들이 하나도 없다면 배열에 -1을 리턴!

마지막으로 오름차순으로 정렬하면 끝일 듯?

 

처음에 map을 쓰려고 했는데 모든 걸 다 리턴하다보니

원하지 않는 값도 도출됐다..

 

그래서 filter로 변경!

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

    answer = arr.filter(arr => {
        if(arr % divisor == 0) {
            return arr;
        }
    })

    if(answer.length == 0) {
        answer = [-1];
    }

    answer.sort(function(a, b) {
        return 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);
}

 

역시나 map()을 쓴 사람이 있었어....

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

 

map을 써서 push로 추가!

 

map을 써도 원하는 값만 도출 할 수 있다ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ!!!!!!!!!!!!!!!!

반응형