Algorithm/Programmers

[Programmers] Lv.0 / 무작위로 K개의 수 뽑기 / Java

unknownomad 2024. 2. 7. 23:34

문제

 

풀이

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