원본 문제 : https://www.acmicpc.net/problem/11557
문제
입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다.
타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 궁금해졌다.
학교별로 한 해동안 술 소비량이 주어질 때, 가장 술 소비가 많은 학교 이름을 출력하여라.
입력
입력의 첫 줄에는 테스트 케이스의 숫자 T가 주어진다.
매 입력의 첫 줄에는 학교의 숫자 정수 N(1 ≤ N ≤ 100)이 주어진다.
이어서 N줄에 걸쳐 학교 이름 S(1 ≤ |S| ≤ 20, S는 공백없는 대소문자 알파벳 문자열)와 해당 학교가 지난 한 해동안 소비한 술의 양 L(0 <= L <= 10,000,000)이 공백으로 구분되어 정수로 주어진다.
같은 테스트 케이스 안에서 소비한 술의 양이 같은 학교는 없다고 가정한다.
출력
각 테스트 케이스마다 한 줄에 걸쳐 술 소비가 가장 많은 학교의 이름을 출력한다.
예제 입력 1
2
3
Yonsei 10
Korea 10000000
Ewha 20
2
Yonsei 1
Korea 10000000
예제 출력 1
Korea
Korea
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
class YJJ implements Comparable<YJJ>{
private String school;
private int sul;
public String getSchool() {return school;}
public YJJ(String school, int sul) {
this.school = school;
this.sul = sul;
}
@Override
public int compareTo(YJJ o) {
if(sul > o.sul) return 1;
else if(sul < o.sul) return -1;
else return 0;
}
}
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
final int T = Integer.parseInt(br.readLine());
StringBuffer sb = new StringBuffer();
for(int i = 0; i < T ; i++) {
final int N = Integer.parseInt(br.readLine());
ArrayList<YJJ> list = new ArrayList<YJJ>();
for(int j = 0; j < N ; j++) {
String strtmp = br.readLine();
String[] strArr = strtmp.split(" ");
list.add(new YJJ(strArr[0], Integer.parseInt(strArr[1])));
}
Collections.sort(list);
YJJ yjj = list.get(N-1);
if(i<T-1)
sb.append(yjj.getSchool()+"\n");
else
sb.append(yjj.getSchool());
}
System.out.println(sb);
}
}
'백준 > 코딩연습1' 카테고리의 다른 글
[백준] 분해합 (2231)(java) (0) | 2019.05.23 |
---|---|
[백준] 일곱 난쟁이 (2309)(java) (0) | 2019.05.23 |
[백준] (틀림)동전 0 (11047)(java) (0) | 2019.05.21 |
[백준] 다이얼 (5622)(java) (0) | 2019.05.17 |
[백준] 상수 (2908)(java) (0) | 2019.05.17 |
댓글