백준
백준 8979 올림픽(Java)
Park DJ
2023. 1. 22. 23:15
https://www.acmicpc.net/problem/8979
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각
www.acmicpc.net
해석 및 팁
이 문제를 풀때는 모든 나라의 순위를 구하는것 보다는 순위를 알고 싶은 나라를 기준으로 정하고 그것보다 금메달 많은 나라가 있으면 rank를 +1 하고 금메달이 같다면 은메달 수를 비교하고 은메달 수가 같으면 동메달 수를 비교하여 rank값을 더해주면 쉽게 풀립니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int rank = 1;
int[][] arr = new int[n+1][3];
for(int i = 1; i <= n; i++) {
int num = sc.nextInt();
arr[num][0] = sc.nextInt(); //금메달
arr[num][1] = sc.nextInt(); //은메달
arr[num][2] = sc.nextInt(); //동메달
}
for(int i = 1; i <= n; i++) {
if(arr[i][0] > arr[k][0]) rank++; //금메달비교
else if(arr[i][0] == arr[k][0] && arr[i][1] > arr[k][1]) rank++; //은메달비교
else if(arr[i][0] == arr[k][0] && arr[i][1] == arr[k][1] && arr[i][2] > arr[k][2]) rank++;
} //동메달비교
System.out.println(rank);
}
}