[프로그래머스] 두 개 뽑아서 더하기

ppyororong_0_0·2022년 1월 16일
0

프로그래머스

목록 보기
7/19

[프로그래머스 - 1단계] 두 개 뽑아서 더하기 문제

https://programmers.co.kr/learn/courses/30/lessons/68644

📝 문제 설명

정수배열 numbers
서로 다른 인덱스에 있는 두 개의 수를 뽑아,
두 수를 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 return

💡 풀이

1. 이중 for문 사용하여 서로 다른 인덱스끼리 값 더하기

  • i번째에 있는 값 + i번째 인덱스 이후에 있는 값 더하기
  • numbers 배열 끝까지 순회하면서 값을 더함
  • 이 때, answer에 더한 값이 존재하지 않는다면 더한 값을 answer배열에 push

2. answer배열 오름차순 정렬

🖥️ 코드

function solution(numbers) {
    let answer = [];
    for (let i = 0; i < numbers.length; i++) {
        for (let j = i + 1; j < numbers.length; j++) {
            if (!answer.includes(numbers[i] + numbers[j])) answer.push(numbers[i] + numbers[j]);
        }
    }
    answer.sort((a, b) => a - b);
    return answer;
}

❗ 다른 사람 풀이

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)
}

다른 사람은 Set을 이용했는데 아직 Set에 익숙하지 않아서 그런지 나는 바로 떠오르지 않았다...!
다음에는 잘 활용할 수 있도록 해야겠다.

profile
안녕하세요!

0개의 댓글