DEVLOG

프로그래머스 알고리즘#14 - 두 개 뽑아서 더하기 본문

dev log/algorithm

프로그래머스 알고리즘#14 - 두 개 뽑아서 더하기

meroriiDev 2020. 12. 21. 12:29
728x90
반응형

<문제>

<풀이>

이중반복문을 통해서 모든 항을 더해주는데

이때 더한 값이 이미 나온값이 아닌 경우에만 배열에 push해서 새 배열을 만들어준다.

그리고 오름차순으로 정렬한 배열을 return해준다.

 

또한 이미 더한값은 다시 계산할 필요가 없기때문에 더해주는값 j는 i+1번째부터 더해주면 더 빠르고 쓸데없이 낭비하지 않는 코드가 될 것 같았다.

function solution(numbers) {
    var answer = [];
    for(var i=0; i<numbers.length; i++){
        for(var j=i+1; j<numbers.length; j++){
            if(!answer.includes(numbers[i]+numbers[j])){
            answer.push(numbers[i]+numbers[j]);
            }
        }
    }
    return answer.sort((a,b)=>a-b);
}

 

if(answer.includes(numbers[i]+numbers[j])) return;
answer.push(numbers[i]+numbers[j]);

그런데 이런식으로 이미 배열에 값이 있을 경우에는 return으로 나가버렸더니 return값으로 답을 내야하는 이 경우에

for문이고 if문이고 다 나가버려서 모든 배열을 다 계산해주지 못해서 알맞지 않았다.

 

그래서 다시 if(!경우)로 감싸서 간단하게 해결했다!

728x90
반응형
Comments