본문 바로가기
알고리즘/프로그래머스

프로그래머스 두 개 뽑아서 더하기 자바 java

by 클로드 2021. 4. 26.
반응형

풀이

정수 배열에 서로 다른 인덱스의 값 두 개끼리 더해서 만들 수 있는 모든 경우의 수를 찾는 것입니다

 

2중 for문으로 완전탐색을 통해서 모든 경우의 수를 찾아냅니다

TreeSet 클래스를 이용해서 더한 값의 중복을 제거, 오름차순으로 정렬을 합니다

 

코드

import java.util.Iterator;
import java.util.TreeSet;

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer;
        TreeSet<Integer> arr = new TreeSet<>();
        int idx = 0;

        for (int i = 0; i < numbers.length - 1; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                arr.add(numbers[i] + numbers[j]);
            }
        }

        answer = new int[arr.size()];

        Iterator iterator = arr.iterator();
        while (iterator.hasNext()) {
            answer[idx++] = (int)iterator.next();
        }

        return answer;
    }
}

 

출처

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

반응형

댓글