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

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

function solution(numbers) {
    const answer = [];
  
    for(let i = 0; i < numbers.length - 1; i++) {
        for(let j = i + 1; j < numbers.length; j++) {
            if (answer.indexOf(numbers[i] + numbers[j]) > -1) continue;
            answer.push(numbers[i] + numbers[j]);
        }
    }
    
    answer.sort((a, b) => a - b);
  
    return answer;
}
  • 이중 for문을 활용하면 쉽게 풀 수 있는 문제
  • answer에 이미 있는 수인지 indexOf를 통해 판별한 다음, 존재한다면 continue로 pass
  • 존재하지 않는다면 push로 삽입
  • 이중 for문을 활용하면 시간 복잡도 면에서 좋지 않다고 알고 있는데 어떻게 풀면 더 좋을지 고민이 필요하다..!
profile
front-end 신입 개발자

0개의 댓글