1. 오름차순으로 sort 한 뒤 이중 for문
import java.util.Arrays;
class Solution {
public int[] solution(int[] emergency) {
// int[] asc = emergency.clone();
int[] asc = Arrays.copyOf(emergency, emergency.length);
int[] answer = new int[emergency.length];
Arrays.sort(asc);
for(int i=0; i<emergency.length; i++) {
for(int j=0; j<emergency.length; j++) {
if(asc[i] == emergency[j]) answer[j] = emergency.length - i;
}
}
return answer;
}
}
arr.clone( ) 아니면 Arrays.copyOf(arr, arr.length)으로 배열 복사 가능 JavaScrtipt의 전개연산자와 동일한 느낌이다..! (...arr)
2. 이중 for문
class Solution {
public int[] solution(int[] emergency) {
int[] answer = new int[emergency.length];
// 배열 값 비교하면서 자신보다 응급도보다 높은 값이 있으면 순서 배열에 +1
for(int i=0; i<emergency.length; i++) {
for(int j=0; j<emergency.length; j++) {
if(emergency[i] < emergency[j]) answer[i]++;
}
// 순서 배열의 모든 값에 + 1 (0이아닌 1부터 하기 위해서)
answer[i]++;
}
return answer;
}
}
굳이 정렬을 하지 않고 emergency에 이중 for문으로 자기보다 큰 값이 있는지 확인해도 됐다..!