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));
}
}
사실 알고 보면 매우 쉬운데 그동안 이 방법을 떠올리지 못한 것에 대한 아쉬움이 크다.