못풀었다
for문 돌려서 compareTo 하는 방법으로 생각해봤는데, 아예 방향이 틀렸다
이중 for문으로 값을 서로 비교하는데, 핵심은
순위를 어떻게 매기는가? 였음
이걸 못찾았다
항상 이중 for문 생각하던 내가, 왜 이번엔 생각하지 못했을까?
의문이다..
public int[] solution(int[] emergency) {
int[] answer = {};
answer = new int[emergency.length];
for(int i=0; i<emergency.length; i++) {
int rank = 1;
for(int j=0; j<emergency.length; j++) {
// 3, 76, 24를 3이랑 비교해서 더 크다면 3은 후순위로 밀리게 된다
if(emergency[j] > emergency[i]) {
rank++;
}
}
answer[i] = rank;
}
return answer;
}
여기에서 알아야하는 부분
함수를 통해서 값들을 실제로 비교하려는 방법을 찾는 것도 맞다. 하지만
필드를 선언하고, 이 필드를 활용해서 순위를 매긴다면 정렬 등을 하지 않고, 배열을 그대로 둔 채로 순위를 매길 수 있다
내가 몰랐던 것은 int rank = 1; 을 선언하는 방법을 몰라서였다