[Programmers] 68644 두 개 뽑아서 더하기
문제
문제의 조건을 보면 input의 크기가 아주 작습니다. 이중 반복문을 통해 해결될 것 같습니다.
function solution(numbers) {
let answer = [];
for (let i = 0; i < numbers.length - 1; i++) {
for (let j = i + 1; j < numbers.length; j++) {
answer.push(numbers[i] + numbers[j]);
}
}
answer = new Set(answer);
answer = Array.from(answer);
// = [...answer];
answer.sort((a, b) => a - b);
console.log(answer);
return answer;
}
이 문제를 통해 처음으로 Set을 배웠습니다. 집합이라는 이름에 걸맞게 Set은 중복 없이 모두 유일한 값만을 저장합니다.
이런 특성을 이용해 answer에 있는 값 중 중복되는 원소들을 모두 제거하고 다시 배열로 변환해 정렬했습니다.
🎁 후기
아주 쉬운 문제였지만 중복값을 처리하는데 조금 고민했습니다. if 문으로 매번 배열을 순회하자니 효율성에서 너무 떨어집니다.
그래서 Object에 키를 설정하고 순회가 아닌 직접 접근하는 방법도 고려했는데 배열 순회보다는 빨랐습니다. 하지만 Set을 통한 중복 제거보다는 느리기에 결국 Set을 선택했습니다.
자바스크립트라는 언어가 가진 능력들을 적재적소에 사용하는 능력을 길러야겠습니다.
Author And Source
이 문제에 관하여([Programmers] 68644 두 개 뽑아서 더하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ja960508/Programmers-68644-두-개-뽑아서-더하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)