문제 설명

정수 배열 numbers가 주어집니다

numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를

배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요

 

제한 조건

- numbers의 길이는 2 이상 100 이하입니다

- numbers의 모든 수는 0 이상 100 이하입니다


입출력 예시

numbers result
[2,1,3,4,1] [2,3,4,5,6,7]
[5,0,2,7] [2,5,7,9,12]


나만의 해설

일단 이중for문을 사용해서 numbers의 첫번째 수와 그 뒤에 수들을 더해서 임시변수에담고

그 임시 변수가 arraylist에 존재하지 않으면 추가해주는 방식이다

이때 서로 다른 수를 더해줘야 하기에 같은 수인 i == j 면 continue해서 다음으로 넘어가주게 한다

그리고 마지막에 배열에 담고 arrays.sort해서 오름차순으로 정렬해준다

 

public class Solution {
    public static void main(String[] args) {
        int []numbers = {2, 1, 3, 4, 1};
        ArrayList<Integer> list = new ArrayList<>();

        int temp = 0;

        for (int i=0; i<numbers.length; i++){
            for(int j=0; j<numbers.length; j++){
                if (i == j){
                    continue;
                }
                temp = numbers[i] + numbers[j];
                if(!list.contains(temp)){
                    list.add(temp);
                }
            }
        }
        int[] answer = new int[list.size()];

        for(int i = 0; i<list.size(); i++){
            answer[i] = list.get(i);
        }
        Arrays.sort(answer);
        System.out.println("최종 : " + answer);
    }
}