

function solution(numbers) {
var answer = [];
for(let i = 0 ; i < numbers.length ; i++){
for(let j = 0; j<numbers.length; j++){
if(i!==j){answer.push(numbers[i]+numbers[j])}
}
}
let newNum = [...new Set(answer)]
newNum.sort((a, b)=> a-b)
return newNum;
}
처음 생각한건 서로 다른 인덱스에서 두개의 수를 뽑아 더한다
그럼 for문을 반복해서 쓰고 인덱스의 값이 다를때 answer에 push를 하면 되겠다 싶었다.
그리고 중복되는 수를 제거해야했는데, 전에 강의 들을때 배운건데 Set을 쓰면 중복되는 값을 없앨수 있다 라고했다. (집합으로 예를 들어서 설명을 했던걸로 기억함)
근데 기억만하고있었지 Set을 정확히 어떻게 쓰는진 몰라서 강의내용 적어놓은 노트보면서 사용방법을 다시 확인했고
쓰고 난 뒤 console.log를 통해 확인해보니까 제대로 중복된 수가 없어진걸 확인했다.
그 뒤 오름차순으로 정렬해야하기때문에 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)
}
거의 모든게 같은데 하나가 다르다.
인덱스가 겹치지 않게 하는건데 난 i와 j를 if문을 사용해서 겹치지 않게 했다면,
j 의 값을 i + 1로 둬서 중복되는걸 피했다.
처음엔 이생각을 했었는데 왠지 안될거같아서 안했는데 그냥 해봤어도 됐을거같다