코테연습/프로그래머스
⭐ 코딩 기초 트레이닝 > 무작위로 K개의 수 뽑기 Java
메각이
2023. 11. 20. 10:45
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181858
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public int[] solution(int[] arr, int k) {
Set<Integer> set = new HashSet<>();
int[] result = new int[k];
int index = 0;
for (int num : arr) {
if (!set.contains(num)) {
result[index++] = num;
set.add(num);
}
if (index == k)
break;
}
while (index < k) {
result[index++] = -1;
}
return result;
}
}
List<> 에서 중복을 제거하는 방법 중 Set<> 를 이요하는 방법을 택했다.
Set<> 는 중복을 포함하지 않는 자료구조이다.
이전에 나온적 없는 수라면 추가하고, k 개의 수가 이미 선택되었다면 break 을 통해 빠져나온다.
index 가 k보다 작은 수가된다면, 남은 부분을 -1로 채워준다.
728x90