Coding test

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

Jiwoo 2022. 4. 19. 16:18

문제

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
 

  • 제한사항
    • numbers의 길이는 2 이상 100 이하입니다.
    • numbers의 모든 수는 0 이상 100 이하입니다.
       

나의 풀이

function solution(nums) {
    // 배열의 두 수 더한 값 배열

    // for: nums[i] + nums[j] -> arr 중복검사 -> 없으면 추가
    let arr = [];

    for(let i = 0; i < nums.length; i++) {
        for(let j = i + 1; j < nums.length; j++) {

            let sum = nums[i] + nums[j];
            if (!arr.includes(sum)) arr.push(sum);
        }
    }

    return arr.sort((a,b) => a-b);
}

 

  • 정확도 테스트 결과


     

다른 풀이

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의 사용에도 익숙해져야겠다!

 

  • 정확도 테스트 결과