LinkedHashSet 이용하기
LinkedHashSet<Integer> str = new LinkedHashSet<>();
ㄴ HashSet 은 순서를 보장하지 않으므로 LinkedHashSet 이용해보기
https://school.programmers.co.kr/learn/courses/30/lessons/181858
import java.util.*;
class Solution {
public int[] solution(int[] arr, int k) {
// LinkedHashSet을 사용하여 중복을 제거하고 유지하는 집합 생성
LinkedHashSet<Integer> set = new LinkedHashSet<>();
for (int num : arr) {
set.add(num);
}
// set을 배열로 변환
Integer[] array = set.toArray(new Integer[0]);
// 결과 배열 초기화
int[] answer = new int[k];
// k개 이하의 고유한 요소가 있을 때
if (array.length >= k) {
for (int i = 0; i < k; i++) {
answer[i] = array[i];
}
}
// k개보다 적은 고유한 요소가 있을 때
else {
for (int i = 0; i < array.length; i++) {
answer[i] = array[i];
}
for (int i = array.length; i < k; i++) {
answer[i] = -1;
}
}
return answer;
}
}
'코딩테스트 > programming_JAVA' 카테고리의 다른 글
[Java] 프로그래머스_42842 : 카펫 (0) | 2023.11.20 |
---|---|
[Java] 프로그래머스_42840 : 모의고사 (0) | 2023.11.20 |
[Java] 프로그래머스_12935 : 제일 작은 수 제거하기 (0) | 2023.09.11 |
[Java] 프로그래머스_120868 : 삼각형의 완성조건 (2) (0) | 2023.09.09 |
[Java] 프로그래머스_181913 : 문자열 여러 번 뒤집기 (0) | 2023.09.07 |