728x90
https://school.programmers.co.kr/learn/courses/30/lessons/181858
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
'코테연습 > 프로그래머스' 카테고리의 다른 글
코딩 기초 트레이닝 > 전국 대회 선발 고사 (0) | 2024.01.08 |
---|---|
코딩 기초 트레이닝 > 문자열 묶기 Java #getOrDefault() (0) | 2023.11.20 |
코딩 기초 트레이닝 > 배열 만들기 6 (0) | 2023.11.09 |
코딩 기초 트레이닝 > 조건에 맞게 수열 반환하기 2 Java / 배열비교 Arrays.equals() (0) | 2023.11.01 |
코딩 기초 트레이닝 > 왼쪽 오른쪽 Java #Arrays.copyOf (2) | 2023.10.25 |