🧬알고리즘/Programmers
[JavaScript] 두 개 뽑아서 더하기
뉴발자
2024. 8. 29. 19:57
728x90
문제
정수 배열 numbers가 매개변수로 주어진다.
numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 반환하는 함수를 작성하라.
나의 풀이
function solution(numbers) {
const result = [];
for (let i = 0; i < numbers.length; i++) {
for (let j = i+1; j < numbers.length; j++) {
result.push(numbers[i] + numbers[j]);
}
}
return Array.from(new Set(result)).sort((a, b) => a - b);
}
풀이 방법
1. 이중 for() 문을 사용해서 모든 원소를 순회하면서 나올 수 있는 합을 result 배열에 넣어준다.
function solution(numbers) {
const result = [];
// 1
for (let i = 0; i < numbers.length; i++) {
for (let j = i+1; j < numbers.length; j++) {
result.push(numbers[i] + numbers[j]);
}
}
}
// numbers: [2, 1, 3, 4, 1]
// i = 0, 3(2+1), 5(2+3), 6(2+4), 3(2+1)
// i = 1, 4(1+3), 5(1+4), 2(1+1)
// i = 2, 7(3+4), 5(4+1)
// i = 3, 5(4+1)
// result = [3, 5, 6, 3, 4, 5, 2, 7, 5, 5]
2. Set() 함수를 사용해서 중복 값을 모두 제거해준다.
new Set(result)
3. Array.from() 함수를 사용해서 Set() 값을 배열로 만들어주고 sort() 함수로 오름차순 정렬한다.
return Array.from(new Set(result)).sort((a, b) => a - b);
728x90