• 문제 링크
14544번: Vote
The first line of input contains a single integer P, (1 ≤ P ≤ 1000), which is the number of data sets that follow. Each data set consists of a line containing the number n of the candidates (1 ≤ n ≤ 100), a space and the number m of results to cent
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.Arrays;
import java.util.HashMap;
import java.util.Map;
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));
StringBuilder sb = new StringBuilder();
Map<String, Integer> map = new HashMap<>();
int p = Integer.parseInt(br.readLine()), i = 0;
while (p-- > 0) {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()), m = Integer.parseInt(st.nextToken());
while (n-- > 0) map.put(br.readLine(), 0);
while (m-- > 0) {
st = new StringTokenizer(br.readLine());
String key = st.nextToken();
map.put(key, map.get(key) + Integer.parseInt(st.nextToken()));
}
Pair[] arr = new Pair[map.size()];
for (String key : map.keySet()) arr[++n] = new Pair(key, map.get(key));
map.clear();
Arrays.sort(arr);
sb.append("VOTE ").append(++i);
if (arr[0].value == arr[1].value) sb.append(": THERE IS A DILEMMA");
else sb.append(": THE WINNER IS ").append(arr[0].key).append(" ").append(arr[0].value);
sb.append("\n");
}
bw.write(sb.toString());
bw.flush();
}
private static class Pair implements Comparable<Pair> {
String key;
int value;
public Pair(String key, int value) {
this.key = key;
this.value = value;
}
@Override
public int compareTo(Pair o) {
return o.value - value;
}
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 21937 작업 - Graph Theory / Java (0) | 2023.09.14 |
---|---|
[백준] 11370 Spawn of Ungoliant - Graph Theory / Java (0) | 2023.09.13 |
[백준] 11235 Polling - Data Structure / Java (0) | 2023.09.11 |
[백준] 16815 Star in Parentheses - Data Structure / Java (0) | 2023.09.10 |
[백준] 18679 Banana - Data Structure / Java (0) | 2023.09.09 |
댓글