문제이해
- 이중반복문을 사용할 줄 아는가?
- 배열 안에 값을 넣을 수 있는가?
- 값을 정렬할 수 있는가?
내가 작성한 코드
function sumNumArray(numbers) {
let sumNumbers = []
let sum = 0
for (let i = 0; i < numbers.length; i++) {
for (let j = 0; j < numbers.length; j++) {
if (i != j) {
sum = numbers[i] + numbers[j]
if (!sumNumbers.includes(sum)) {
sumNumbers.push(sum)
}
}
}
}
sortNum = sumNumbers.sort((a, b) => a - b)
return sortNum
}
- for문을 사용하여 이중반복문을 구현했으며, 안에 값이 있는지 확인하기위해 includes를 사용함.
다른 사람의 풀이
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])
}
}
console.log(temp)
const answer = [...new Set(temp)]
console.log(answer)
}
- 이중반복문에서 자기 자신을 제외하고 비교할 경우, 첫번째 반복문 변수의 +1 한 값으로 두전째 반복문의 초기값을 정의하면 된다.
- 어차피 그전에 계산했던 값 이므로 이중적으로 계산할 필요없음
- Set객체는 중복을 제거한 값들의 집합이다.
- 이를 통해서 배열 안에 중복되는 값을 쉽게 제거 할 수 있다.