본문 바로가기
알고리즘

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

by 완기 2022. 1. 31.
728x90
반응형

300x250

문제 설명 : numbers 배열이 주어질 때, 2개를 뽑아서 더해서 나올 수 있는 모든 수를 오름차순으로 정렬.

 

나의 풀이

 

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = {};
        ArrayList<Integer> list =new ArrayList<>();
        
        for(int i=0 ; i<numbers.length-1;i++){
            for(int j=i+1; j<numbers.length;j++){
                list.add(numbers[i]+numbers[j]);
            }
        }
        
        return list.stream().distinct().sorted().mapToInt(i->i).toArray();
    }
}

나는 나올 수 있는 모든 수를 반복문으로 ArrayList에 넣고 최근에 글을 올린 Stream으로 문제를 해결했다.

 

ArrayList를 스트림으로 바꾸고 distinct()를 호출하면 중복을 제거할 수 있고, sorted를 통해 정렬

 

마지막으로 mapToInt를 통해 Integer를 int형으로 바꾸고 toArray()를 통해 형 변환을 해줬다.

 

 

728x90
728x90

댓글