두 개 뽑아서 더하기

Cottonmycotton·2021년 9월 28일
0

Algorithm

목록 보기
13/44
post-custom-banner

문제 설명

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

제한사항

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

입출력 예시

🖊 풀이

  • 이중 포문을 사용하여 서로 다른 두값을 모두 더한다
  • 더한 값을 indexOfincludes를 사용한 다음 값을 push 할수도 있지만 reduce를 사용하여 중복제거 하는 사용법을 써보고 싶어서 배열에 담은 다음 중복제거를 하여 리턴했다

💡 코드

function solution(numbers) {
    var answer = [];
    let results;
    
    for (let i = 0; i < numbers.length; i++) {
        for (let j = i + 1; j <numbers.length; j++) {
            const sum = numbers[i] + numbers[j];
            answer.push(sum);
            results = answer.reduce((acc, cur, i, arr) => {
                if (arr.indexOf(cur) === i) acc.push(cur);
                return acc;
            },[]);
        }
    }
    results.sort((a, b) => a - b);
    return results;
}

문제 출처: 프로그래머스

profile
투명인간
post-custom-banner

0개의 댓글