[Java] 순위 알고리즘으로 순위(Rank)를 구하는 프로그램

 

Java를 이용하여 순위(Rank)를 구하는 프로그램을 만들어 보겠습니다.

 

프로그램의 동작은 다음과 같습니다.

 

  1. 5개의 수를 입력받습니다.
  2. 입력 받은 수를 순위(Rank)를 구하여 출력합니다.

 

우선, 문제를 풀기 위해서는 우선 입력 받은 수를 크기 순으로 정렬해야 합니다. 하지만, 정렬 알고리즘을 구현하는 것은 이번 포스팅의 목적이 아니므로 간단하게 이중 반복문을 이용하여 구현하겠습니다.

 

import java.util.Scanner;

public class RankAlgorithmDemo {

    public static void main(String[] args) {

        // 5개의 수를 입력받아 배열에 저장
        int[] nums = new int[5];
        Scanner sc = new Scanner(System.in);

        System.out.print("5개의 수를 입력하세요: ");
        for (int i = 0; i < 5; i++) {
            nums[i] = sc.nextInt();
        }

        // 입력받은 수를 순위(Rank)를 구하여 출력
        int[] ranks = new int[5];

        for (int i = 0; i < 5; i++) {
            int rank = 1;
            for (int j = 0; j < 5; j++) {
                if (nums[i] < nums[j]) {
                    rank++;
                }
            }
            ranks[i] = rank;
        }

        System.out.println("  점 수   순 위 ");
        for (int i = 0; i < 5; i++) {
            System.out.printf("%7d %7d\n", nums[i], ranks[i]);
        }
    }
}

우선, int[] nums 배열에 입력받은 5개의 수를 저장합니다. 그리고 int[] ranks 배열에는 순위(Rank)를 저장합니다.

 

그리고 이중 반복문을 이용하여 입력 받은 수들을 비교하여 각 수의 순위(Rank)를 구합니다. 이 때, 순위(Rank)는 rank 변수에 저장되며, 만약 입력 받은 수보다 큰 수가 있을 때마다 rank 값을 증가시킵니다.

 

마지막으로, System.out.printf 메서드를 이용하여 nums 배열에 있는 입력받은 수와 ranks 배열에 있는 순위(Rank)를 출력합니다.

5개의 수를 입력하세요: 33 21 17 5 40

  점 수   순 위 

     33       2

     21       3

     17       4

      5       5

     40       1

 

이제 프로그램이 정상적으로 동작하는 것을 확인할 수 있습니다.

 

Comments


Comments are closed