728x90
function solution(numbers) {
let answer = [], i, j, len=numbers.length;
for(i=0; i<len-1; i++) {
for(j=i+1; j<len; j++) {
answer.push(numbers[i] + numbers[j]);
}
}
answer = [...new Set(answer)]
answer.sort((a,b)=>a-b);
return answer;
}
두 개의 합을 구하는 경우의 수였기에 심플하게 2중 포문으로 해결해보았다. 만약 3개 이상의 무작위 수를 더하는 문제였다면 풀이 방법이 달라졌을 것이다.
모든 경우의 수를 answer에 담았고, 중복을 제거하기 위하여 ES6부터 제공하는 new Set()을 사용하였다.
Set을 한 후 정렬을 하는 것이 테스트 결과 성능이 향상되어 Set() 을 먼저한 뒤 sort()시켰다.
728x90
'Study Note > Algorithm' 카테고리의 다른 글
프로그래머스 #데모 테스트 - 직사각형 마지막 한점 좌표 구하기 (0) | 2021.01.22 |
---|---|
프로그래머스 #완전탐색 - 모의고사 lv1 (0) | 2021.01.22 |
프로그래머스 #정렬 - K번째수 lv1 (0) | 2021.01.20 |
프로그래머스 #해시 - 베스트앨범 lv3 (0) | 2021.01.16 |
프로그래머스 #스택/큐 - 기능개발 lv2 (0) | 2021.01.16 |
댓글