본문 바로가기

Develop_story/programmers(알고리즘 문제)

programmers 나누어 떨어지는 숫자 배열

SMALL

1. 오름차순으로 정렬한 배열을 반환하기 때문에 배열을 오름차순으로 정렬

2. for 반복문으로 arr를 돌며 divisor로 나누었을 때 나머지가 0인 경우 answer 에 push

3. 나머지가 0이 아닌 경우 -1 을 push

function solution(arr, divisor) {
    var answer = [];
    arr.sort(function(a, b)  {
      return a - b;
    });										// 오름차순으로 정렬
    for(let i = 0; i < arr.length; i++) {
        if(arr[i] % divisor === 0) {		// arr를 돌며 i번째가 divisor로 나누어 0일 때
            answer.push(arr[i]);			// answer에 넣어준다
        } else {
            answer.push(-1)					// 아닌 경우 -1 을 넣는다
        }
    }
    return answer;
}

문제점: 아닌 경우가 많은 경우 answer에 -1이 들어가 정답과 다름

해결 방법: if문을 하나 더 만들어 answer에 할당

function solution(arr, divisor) {
    var answer = [];
    arr.sort(function(a, b)  {
      return a - b;
    });
    for(let i = 0; i < arr.length; i++) {
        if(arr[i] % divisor === 0) {
            answer.push(arr[i]);
        }
    }
    if(answer.length === 0) {
        answer.push(-1);
    }
    return answer;
}

 

LIST