[JAVA 문제 풀이] 184. 무작위로 K개의 수 뽑기

프로그래머스 (181858)
Stupefyee's avatar
Apr 07, 2025
[JAVA 문제 풀이] 184. 무작위로 K개의 수 뽑기
notion image
 

내가 작성한 코드

import java.util.*; class Solution { public int[] solution(int[] arr, int k) { // 중복 제거를 위해 Set 사용 LinkedHashSet<Integer> uniqueSet = new LinkedHashSet<>(); for (int num : arr) { uniqueSet.add(num); // 중복된 값은 자동으로 제거됨 } // 결과 배열 생성 int[] answer = new int[k]; int index = 0; // Set의 값을 순서대로 배열에 추가 for (int num : uniqueSet) { if (index >= k) break; // k개의 값만 추가 answer[index++] = num; } // 남은 공간을 -1로 채움 while (index < k) { answer[index++] = -1; } return answer; } }
 

다른 사람의 코드

import java.util.*; class Solution { public int[] solution(int[] arr, int k) { ArrayList<Integer> arrayList = new ArrayList<>(); // 결과를 담을 리스트 for (int a : arr) if (!arrayList.contains(a)) // 리스트에 중복된 값이 아닌 경우에만 추가 arrayList.add(a); int idx = 0; int[] answer = new int[k]; // 빈 부분에 -1로 채우기 for (int i = 0;i < k;i++) answer[i] = -1; // 배열에 값을 넣어서 인트 배열로 변환 for (int i = 0;i < k && i < arrayList.size();i++) answer[i] = arrayList.get(i); return answer; } }
 
Share article

stupefyee