[programmers-js] 두개 뽑아서 더하기

hooray·2022년 7월 7일
0

문제이해

  • 이중반복문을 사용할 줄 아는가?
  • 배열 안에 값을 넣을 수 있는가?
  • 값을 정렬할 수 있는가?

내가 작성한 코드

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객체는 중복을 제거한 값들의 집합이다.
  • 이를 통해서 배열 안에 중복되는 값을 쉽게 제거 할 수 있다.
profile
Stay hungry. Stay foolish.

0개의 댓글