본문 바로가기
알고리즘 문제/프로그래머스

[프로그래머스 - Java] 두 개 뽑아서 더하기(월간 코드 챌린지 시즌1)

by 건복치 2020. 9. 22.
반응형

문제

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

 

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

 

programmers.co.kr

코드

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        HashSet<Integer> set = new HashSet<>(); // 중복 없게 하기 위해 Set 사용
        
        for(int i = 0; i < numbers.length-1; i++) {
            for(int j = i+1; j < numbers.length; j++) {
                set.add(numbers[i] + numbers[j]);
            }
        }
        
        ArrayList<Integer> list = new ArrayList<>(set); //Set을 문제가 원하는 Array로 바꾸는 과정
        Collections.sort(list);
        
        int[] answer = new int[list.size()];
        for(int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}

 

Set을 Array로 바꾸는 저 7줄의 코드를

return set.stream().sorted().mapToInt(Integer::intValue).toArray();

이렇게 한방에 쓸 수 있다;;;; 프로그래머스에서 다른 사람의 풀이에서 봄ㅠㅠ

stream 공부해야겠다.

반응형

댓글