👉 문제 설명
👉 Javascript 문제 풀이
function solution(answer) { let arr = []; for(let i = 0; i < answer.length; i++) { for(let j = i+1; j < answer.length; j++) { let sum = answer[i] + answer[j]; if(!arr.includes(sum)) { arr.push(sum); } } } arr = arr.sort(); return arr; }
이중 포문을 돌려서 모든 요소를 더하여 if문을 통해 arr 배열에 포함되어져 있지 않은것만
arr 배열에 넣어줬다.
그 뒤 오름차순 정렬를 위해 정렬 함수인 sort를 사용하여 정렬해 리턴 해주었다.
👉 다른 사람의 문제 풀이
function solution(numbers) { const temp = [] for (let i = 0; i < numbers.length; i++) { for (let j = i + 1; j < numbers.length; j++) { temp.push(numbers[i] + numbers[j]) } } const answer = [...new Set(temp)] return answer.sort((a, b) => a - b) }
이 문제 풀이는 temp 배열에 중복과 관련 없이 모든 요소를 더한 값을 배열에 넣은 뒤
Set 함수를 사용하여 중복을 제거해주고, 정렬하여 리턴해준 코드이다.
내가 작성한 코드보다 깔끔했고, Set 함수에 대해서도 알게되었다.
return 부분에 anwer.sort()로만 해줘도 되지 않을까 생각이 들었다.
👉 Set 함수 ?
1. Set()은 value 들로 이루어진 컬렉션(집합)
2. Array와 다르게 Set은 값은 value를 2번 포함할 수 없다.
3. 중복 값이 들어와도 배열에 추가가 되지 않는다.
도움 얻고 갑니다 감사합니당!!!