Leetcode Java Relative Sort Array
업데이트:
문제
코드
class Solution {
public int[] relativeSortArray(int[] arr1, int[] arr2) {
int[] count = new int[1001];
for (int num : arr1) {
count[num]++;
}
int index = 0;
for (int num : arr2) {
while (count[num]-- > 0) {
arr1[index++] = num;
}
}
for (int i = 0; index < arr1.length && i < 1001; i++) {
while (count[i]-- > 0) {
arr1[index++] = i;
}
}
return arr1;
}
}
결과
설명
-
정수 배열 arr2의 값들의 순서대로 arr1을 정렬하고 arr2 내 없는 값들은 정렬 된 이후 순서로 오름차순 정렬하여 넣어주는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- count는 arr1 내 값들의 갯수를 저장할 변수로, arr1의 모든 값을 반복하여 갯수를 계산해준다.
- index는 arr1의 값들을 정렬된 순서대로 넣어주기위한 위치 변수로, 첫 위치인 0으로 초기화한다.
-
arr2의 값들을 순차적으로 반복하여 count 내 값들의 갯수만큼 순서대로 arr1에 넣어준다.
-
0부터 1001 미만일 때 까지 i를 증가시키고, index가 arr1의 길이 미만일 때 까지 count[i]의 값을 arr1 내 순차적으로 넣어준다.
- 조건대로 정렬된 arr1을 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기