본문 바로가기

Java/코딩테스트

[java/프로그래머스/68644] 두 개 뽑아서 더하기 (set.stream().sorted().mapToInt(i -> i).toArray())

✏️ 문제 설명

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


✏️ code

📌 set.stream().sorted().mapToInt(i -> i).toArray();
- set.stream(): set 컬렉션을 스트림으로 변환
- sorted(): 스트림 요소 정렬
- mapToInt(i -> i): Stream<Interger>를 IntStream으로 변환. 즉, 스트림 각 요소를 int형으로 변환
- toArray(): IntStream의 요소들을 배열 int[]로 변환
package programmers;
import java.util.*;

public class P68644 {
    public int[] solution(int[] numbers) {
        HashSet<Integer> set = new HashSet<>();
        int len = numbers.length;

        for (int i = 0; i < len-1; i++) {
            for (int j = i+1; j < len; j++) {
                set.add(numbers[i]+numbers[j]);
            }
        }

        int[] result = set.stream().sorted().mapToInt(i -> i).toArray();
        return result;
    }
}
반응형