[Java] 순위 알고리즘으로 순위(Rank)를 구하는 프로그램
[Java] 순위 알고리즘으로 순위(Rank)를 구하는 프로그램
Java를 이용하여 순위(Rank)를 구하는 프로그램을 만들어 보겠습니다.
프로그램의 동작은 다음과 같습니다.
- 5개의 수를 입력받습니다.
- 입력 받은 수를 순위(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