[프로그래머스, 181858] 무작위로 K개의 수 뽑기 (java)
Problem Solving/Programmers

[프로그래머스, 181858] 무작위로 K개의 수 뽑기 (java)

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/181858

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


메모리: 95.5 MB, 시간: 1.62 ms

사용 알고리즘: 구현, 자료구조

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int k) {
        
        // 중복 체크를 위한 Set
        Set<Integer> set = new HashSet<>();
        
        int[] answer = new int[k];
        int index = 0;
        
        for(int i = 0; i < arr.length; i++) {
            if(!set.contains(arr[i])) { // 지금까지 나온 적이 없는 수라면
                answer[index++] = arr[i];
                set.add(arr[i]);
                // 서로 다른 k개의 수를 모두 저장하면 break
                if(index == k) break;
            }
        }
        
        // 완성된 배열의 길이가 k보다 작으면 나머지 값을 전부 -1로 채우기
        while(index < k) answer[index++] = -1;
        return answer;
    }
}
728x90