문제


풀이
import java.util.*;
import java.util.stream.*;
class Solution {
public int[] solution(int[] arr, int k) {
List<Integer> result = new ArrayList<>();
IntStream.of(arr)
.filter(num -> !result.contains(num))
.limit(k)
.forEach(result::add);
while(result.size() < k) {
result.add(-1);
}
return result.stream().mapToInt(Integer::intValue).toArray();
}
}
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr, int k) {
// 먼저 arr에서 얻은 서로 다른 값들이 나열되고,
// 그 다음에는 나머지 길이가 k가 되도록 -1이 추가됨
return IntStream.concat(
Arrays.stream(arr).distinct(),
IntStream.range(0, k).map(i -> -1))
.limit(k)
.toArray();
}
}
출처
https://school.programmers.co.kr/learn/courses/30/lessons/181858
'Algorithm > Programmers' 카테고리의 다른 글
| [Programmers] Lv.0 / 배열 비교하기 / Java (0) | 2024.02.15 |
|---|---|
| [Programmers] Lv.0 / 배열의 길이를 2의 거듭제곱으로 만들기 / Java (0) | 2024.02.14 |
| [Programmers] Lv.0 / 배열 만들기 6 / Java (0) | 2024.02.06 |
| [Programmers] Lv.0 / 빈 배열에 추가, 삭제하기 / Java (0) | 2024.02.05 |
| [Programmers] Lv.0 / 배열의 원소만큼 추가하기 / Java (0) | 2024.02.02 |
댓글