본문 바로가기

코딩테스트

진료순서 정하기

못풀었다

 

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; 을 선언하는 방법을 몰라서였다

 

'코딩테스트' 카테고리의 다른 글

배열 자르기  (0) 2026.04.30
문자 반복 출력하기  (0) 2026.04.22
짝수 홀수 개수  (0) 2026.04.22
문자열 뒤집기  (0) 2026.04.12
배열 뒤집기  (0) 2026.04.12