728x90
코드 힌트
- 중복 원소 제외하기:
- 주어진 배열을 순회하면서 중복된 원소를 제외하고, 결과 배열에 원소를 추가합니다. 중복 확인을 위해 List를 사용하며 contains() 혹은 indexOf()로 요소를 찾았는지 확인합니다.
- 결과 배열 초기화:
- 결과 배열의 길이는 k로 설정합니다. 배열을 채우면서 빈 자리는 -1로 설정합니다.
- 빈 자리를 -1로 채우기:
- 배열을 순회하여 중복을 제외한 후, 결과 배열의 빈 자리를 -1로 채워서 배열의 길이를 맞춥니다.
- 효율적인 중복 확인:
- List의 원소의 중복 여부를 확인합니다. 배열의 길이와 k의 값에 따라 결과 배열을 조정합니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int[] solution(int[] arr, int k) {
// 결과를 저장할 배열을 생성합니다. 길이는 k입니다.
int[] result = new int[k];
// 중복을 확인하기 위한 리스트를 생성합니다.
List<Integer> list = new ArrayList<>();
// 현재까지 결과 배열에 저장된 원소의 인덱스입니다.
int index = 0;
// 주어진 배열을 순회합니다.
for (int i = 0; i < arr.length; i++) {
// 현재 원소가 리스트에 없고, 결과 배열의 빈 자리가 있는 경우
if (!list.contains(arr[i]) && index < k) {
// 결과 배열에 원소를 추가하고 인덱스를 증가시킵니다.
result[index++] = arr[i];
// 리스트에 원소를 추가하여 중복을 방지합니다.
list.add(arr[i]);
}
}
// 결과 배열에 빈 자리가 있는 경우, -1로 채웁니다.
for (int i = index; i < k; i++) {
result[i] = -1;
}
// 결과 배열을 반환합니다.
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 정수를 나선형으로 배치하기 (0) | 2024.08.13 |
---|---|
[프로그래머스] 정사각형으로 만들기 (0) | 2024.08.13 |
[프로그래머스] 두 수의 합 (0) | 2024.08.13 |
[프로그래머스] 배열 만들기 6 (0) | 2024.08.13 |
[프로그래머스] 커피 심부름 (0) | 2024.08.13 |