자바로 백준 2535 풀기

hong030·2023년 5월 10일
0
  • 실버 5단계 문제

풀이)

2차원 배열을 통해 모든 입력값을 저장하고, 점수를 기준으로 내림차순 정렬을 한다. 나라 별 메달 수가 2개 이하여야 하므로 if 문을 통해 동메달을 받을 나라를 선정한다.

내 코드)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		int n = Integer.parseInt(bf.readLine());
		int[][] arr = new int[n][3];

		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());
			arr[i][0] = Integer.parseInt(st.nextToken());
			arr[i][1] = Integer.parseInt(st.nextToken());
			arr[i][2] = Integer.parseInt(st.nextToken());
		}

		Arrays.sort(arr, new Comparator<int[]>() {
			@Override
			public int compare(int[] o1, int[] o2) {
				return o2[2] - o1[2];
			}
		});

		//나라 별 메달 수 제한
		int last = 2;
		if (arr[0][0] == arr[1][0]) {
			for (int i = 2; i < n; i++) {
				if (arr[0][0] != arr[i][0]) {
					last = i;
					break;
				}
			}
		}
		System.out.println(arr[0][0] + " " + arr[0][1]);
		System.out.println(arr[1][0] + " " + arr[1][1]);
		System.out.println(arr[last][0] + " " + arr[last][1]);

	}

}

profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글