Algorithm & PS/Algorithm

알고리듬 - 순위 매기기

Dlise 2023. 9. 16. 15:39

알고리듬 문제를 푸는데 순위를 매겨야 할 때마다 막혀서 이에 대해 정리하고자 한다.

 

순위 매기기

아래의 배열에 대해 큰 순서대로 순위를 매겨보자.

int[] arr = {12, 34, 46, 37, 21, 48, 53, 35, 19};

 

먼저 순위 정보를 담을 배열을 생성한다.

int[] rank = new int[arr.length];

 

다음으로 아래의 이중 for문을 돌린다.

for(int i = 0; i < arr.length; i++) {
    rank[i] = 1;
            
    for(int j = 0; j < arr.length; j++) 
        if(arr[i] < arr[j]) 
            rank[i]++;
            
}

한 값을 다른 값과 비교해 가면서 조건이 맞으면 순위 값을 1 증가시킨다. 조건은 상황에 맞게 바꾸면 된다.

 

전체 코드

import java.util.Arrays;

public class test2 {
    public static void main(String[] args) {
        int[] arr = {12, 34, 46, 37, 21, 48, 53, 35, 19};
        int[] rank = new int[arr.length];

        for(int i = 0; i < arr.length; i++) {
            rank[i] = 1;
            
            for(int j = 0; j < arr.length; j++) 
                if(arr[i] < arr[j]) 
                    rank[i]++;
            
        }

        System.out.println(Arrays.toString(rank));
    }
}

 

사실 알고 보면 매우 쉬운데 그동안 이 방법을 떠올리지 못한 것에 대한 아쉬움이 크다.