import java.util.stream.*;
class Solution {
public int[] solution(int[] arr, int k) {
int[] pickedArr = IntStream.range(0,arr.length)
.map(i -> arr[i])
.distinct()
.limit(k)
.toArray();
int[] answer = IntStream.range(0, k)
.map(i -> -1)
.toArray();
System.arraycopy(pickedArr, 0, answer, 0, pickedArr.length);
return answer;
}
}
다른 분의 멋진 풀이
분석을 해보자면,
Array를 바로 스트림으로 바꿀 수 있다.
- Arrays.stream(arr)을 통해 stream으로 바꾸고, limit를 통해 k개까지 제한한다.
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr, int k) {
return IntStream.concat(Arrays.stream(arr).distinct(), IntStream.range(0, k).map(i -> -1))
.limit(k)
.toArray();
}
}
'코딩테스트 > Programmers' 카테고리의 다른 글
[프로그래머스] 등차수열의 합 (0) | 2025.01.23 |
---|---|
[프로그래머스] 두 수의 합 (0) | 2025.01.23 |
정사각형으로 만들기 (0) | 2025.01.23 |
[프로그래머스] 전국 대회 선발 고사 (0) | 2025.01.23 |
[프로그래머스] 홀짝에 따라 다른 값 반환하기 (0) | 2025.01.22 |