두 개 뽑아서 더하기 [Java]

sua·2022년 12월 27일
0

문제


풀이

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer;
        
        ArrayList<Integer> array = new ArrayList<>();
        
        for(int i = 0; i < numbers.length; i++) {
            for(int j = i + 1; j < numbers.length; j++) {
                if(array.indexOf(numbers[i] + numbers[j]) == -1) {
                    array.add(numbers[i] + numbers[j]);
                }
            }
        }
        Collections.sort(array);
        
        answer = new int[array.size()];
        for(int i = 0; i < answer.length; i++) {
            answer[i] = array.get(i);
        }
        
        return answer;
    }
}

두 수의 합을 저장시킬 ArrayList 타입인 array를 생성한다.
그런 다음 i는 0부터 numbers.length까지 돌고 j는 i보다 1 큰수부터 nubers.length까지 이중 for문을 돌려서 각 배열의 원소끼리의 합을 구하게 한다. 여기서 array의 indexOf 메소드를 이용해서 numbers의 i번째 요소와 numbers의 j번째 요소의 합이 array에 없는 경우 즉 indexOf가 -1인 경우만 array에 해당 요소 합을 추가시킨다.
그리고 나서 array를 Collections.sort로 오름차순으로 정렬하고나서 for문을 돌려서 answer에 해당 값들을 할당시키면 된다.

결과

profile
가보자고

0개의 댓글

관련 채용 정보