📝 문제풀이/프로그래머스
[Level 1] 두 개 뽑아서 더하기
NoHack
2022. 2. 27. 15:49
728x90
문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한 조건
- numbers의 길이는 2 이상 100 이하입니다.
- numbers의 모든 수는 0 이상 100 이하입니다.
문제 풀이
const solution = (numbers) => {
const res = [];
for (let i = 0; i < numbers.length - 1; i++) {
for (let j = i + 1; j < numbers.length; j++) {
res.push(numbers[i] + numbers[j]);
}
}
res.sort((a, b) => a - b);
// Set은 중복이 없는 데이터 집합
return [...new Set(res)];
};
const inputs = [
[2, 1, 3, 4, 1],
[5, 0, 2, 7],
];
inputs.forEach((input) => console.log(solution(input)));
이 문제는 반복문을 통해 서로 다른 두 요소의 합을 모두 구할 수 있으면 간단하게 해결할 수 있습니다. 연산을 통해 구해지는 모든 결과를 res 배열 안에 저장한 다음 오름차순으로 정렬하고, Set 자료형으로 임시 변환한 뒤 스프레드 연산자와 함께 사용해 배열로 만들어 반환하면 됩니다. Set 자료형은 중복을 허용하지 않는 데이터 집합입니다.