Problem Solving/Baekjoon
[백준] 8979 올림픽 - Implementation / Java
graycode
2022. 6. 5. 21:47
• 문제 링크
8979번: 올림픽
입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken()) - 1;
int[][] arr = new int[n][3];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
int idx = Integer.parseInt(st.nextToken()) - 1;
int g = Integer.parseInt(st.nextToken());
int s = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
arr[idx][0] = g;
arr[idx][1] = s;
arr[idx][2] = b;
}
int rank = 1;
for (int i = 0; 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++;
}
bw.write(rank + "\n");
bw.flush();
}
}