Java

[백준 9017] 크로스 컨트리 (JAVA)

iheeeee6-6 2023. 5. 31. 14:52
728x90

https://www.acmicpc.net/problem/9017

 

9017번: 크로스 컨트리

입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 케이스로 주어진다. 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 T 가 주어진다. 두 번째 줄부터는 두 줄에 하나의

www.acmicpc.net

 

 6명의 선수가 없는 팀은 탈락인 부분이 중요하다.

탈락한 선수들은 제외하고 점수를 매겨야 한다!

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int t = Integer.parseInt(br.readLine());
		for (int i = 0; i < t; i++) {
			int n = Integer.parseInt(br.readLine());

			int[] inputArr= new int[n];
			int[] countArr = new int[201];
			StringTokenizer st = new StringTokenizer(br.readLine());
			for (int j = 0; j < n ; j++) {
				inputArr[j] = Integer.parseInt(st.nextToken());
				countArr[inputArr[j]]++;
			}
			
			ArrayList<Integer>[] list = new ArrayList[201];
			for (int j = 1; j < 201; j++) {
				list[j] = new ArrayList<Integer>();
			}
            
			int score=1;
			for (int j = 0; j < n ; j++) {
				if(countArr[inputArr[j]]<6) continue;
				list[inputArr[j]].add(score++);
			}

			int min = Integer.MAX_VALUE;
			int idx = 1;
			for (int j = 1; j < 201; j++) {
				if (list[j].size() >= 6) {
					int sum = 0;
					for (int k=0;k<4;k++) {
						sum += list[j].get(k);
					}
					if (min > sum) {
						min = sum;
						idx = j;
					} else if (min == sum) {
						if (list[idx].get(list[idx].size() - 2) > list[j].get(list[j].size() - 2)) {
							idx = j;
						}
					}
				}
			}

			System.out.println(idx);

		}

	}

}

'Java' 카테고리의 다른 글

[백준 12845] 모두의 마블 (JAVA)  (0) 2023.06.01
[백준 2110] 공유기 설치 (JAVA)  (0) 2023.06.01
[백준 1508] 레이스 (JAVA)  (0) 2023.05.31
[백준 8980] 택배 (JAVA)  (0) 2023.05.31
[백준 9082] 지뢰찾기 (JAVA)  (0) 2023.05.30