문제
https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript
풀이
우선 중복을 제거하기 위해 집합을 만든다.
배열을 이중반복으로 돌면서 두 가지 수를 모두 뽑아 더해준 후 집합에 넣는다 (중복은 걸러짐)
집합을 다시 배열로 변환 후 오름차순으로 정렬한다.
function solution(numbers) {
const uniqueSums = new Set(); // 중복 제거용 Set
const n = numbers.length;
for (let i = 0; i < n; i++) {
for (let j = i + 1; j < n; j++) {
uniqueSums.add(numbers[i] + numbers[j]); // 바로 Set에 추가
}
}
// Set을 배열로 변환 후 정렬
return [...uniqueSums].sort((a, b) => a - b);
}
// 테스트
console.log(solution([2, 1, 3, 4, 1])); // [2, 3, 4, 5, 6, 7]
console.log(solution([5, 0, 2, 7])); // [2, 5, 7, 9, 12]
'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글
프로그래머스, 자바스크립트) 올바른 괄호 (0) | 2024.11.18 |
---|---|
프로그래머스, 자바스크립트) JadenCase 문자열 만들기 (0) | 2024.11.17 |
프로그래머스, 자바스크립트) 최솟값 만들기 (0) | 2024.11.15 |
프로그래머스, 자바스크립트) 최댓값과 최솟값 (1) | 2024.11.14 |
프로그래머스, 자바스크립트) 숫자의 표현 (3) | 2024.11.13 |