DEVLOG
프로그래머스 알고리즘#14 - 두 개 뽑아서 더하기 본문
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
반응형
'dev log > algorithm' 카테고리의 다른 글
프로그래머스 알고리즘#16 - 핸드폰 번호 가리기 (0) | 2020.12.21 |
---|---|
프로그래머스 알고리즘#15 - K번째수 (3) | 2020.12.21 |
프로그래머스 알고리즘#13 - 3진법 뒤집기 (0) | 2020.12.21 |
프로그래머스 알고리즘#12 - 같은 숫자는 싫어 (0) | 2020.12.21 |
프로그래머스 알고리즘#11 - 가운데 글자 가져오기 (0) | 2020.12.18 |
Comments