[JAVA] 두 개 뽑아서 더하기

dada·2024년 9월 24일
0

algorithm

목록 보기
12/17

문제

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

입출력 예

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

풀이

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = {};
        
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        
        for(int i = 0; i < numbers.length; i++){
            for(int j = i+1; j<numbers.length; j++){
                if(!list.contains(numbers[i]+numbers[j])){
                    list.add(numbers[i]+numbers[j]);
                }
            }
        }
        
        Collections.sort(list);
        
        return list.stream().mapToInt(i->i).toArray();
    }
}
  • 반복문 안에서 j = i+1로 주면서 서로 다른 인덱스의 수를 뽑을 수 있게끔 했다.
  • !list.contains()를 통해서 더한 값이 이미 리스트에 있다면 넣지 않도록, 없으면 넣도록 했다.
  • Collections.sort()로 맨 마지막 정렬을 해줬다.
  • list.stream().mapToInt(i->i).toArray()로 ArrayList를 배열로 변경했다.
profile
CV, Vision AI 등을 공부합니다

0개의 댓글