현재노트

[프로그래머스] 두 개 뽑아서 더하기(Java) - Level1 본문

코딩테스트

[프로그래머스] 두 개 뽑아서 더하기(Java) - Level1

현재노트 2021. 8. 10. 17:07

문제링크

 

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

 

코딩테스트 연습 - 두 개 뽑아서 더하기

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

programmers.co.kr

 

문제내용

 

solution

 

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer;
        
        List<Integer> sumList = new ArrayList<Integer>();
        
        for (int i=0; i<numbers.length; i++) {
            for(int j= i+1; j<numbers.length; j++){
                int sum = numbers[i]+numbers[j];
                
                if(!sumList.contains(sum)){
                    sumList.add(sum);
                }
            }
        }
        
        answer = sumList.stream().mapToInt(i -> i).toArray();
        Arrays.sort(answer);
        
        return answer;
    }
}

 

2중 반복문을 통해서 두 개의 합이 나올 수 있는 경우의수를 모두 구하고, 구한값이 list에 포함이 되어있지않다면 add하는 형태로 작성하였습니다.

 

이후, stream을 사용하여 배열에 담아주고 담은 배열을 오름차순 정렬하여 리턴합니다.

Comments