• 문제 링크
https://www.acmicpc.net/problem/25775
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
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();
int n = Integer.parseInt(br.readLine());
String[] arr = new String[n];
while (n-- > 0) arr[n] = br.readLine();
Map<Integer, Map<Character, Integer>> map = new TreeMap<>();
for (String s : arr) {
for (int i = 0; i < s.length(); i++) {
Map<Character, Integer> freq = map.getOrDefault(i, new TreeMap<>());
freq.put(s.charAt(i), freq.getOrDefault(s.charAt(i), 0) + 1);
map.put(i, freq);
}
}
for (int i : map.keySet()) {
Map<Character, Integer> freq = map.get(i);
Set<Character> set = new TreeSet<>();
int max = 0;
for (Entry<Character, Integer> e : freq.entrySet()) {
if (e.getValue() > max) {
set.clear();
set.add(e.getKey());
max = e.getValue();
} else if (e.getValue() == max) set.add(e.getKey());
}
sb.append(i + 1).append(": ");
for (Character c : set) sb.append(c).append(" ");
sb.append("\n");
}
bw.write(sb.toString());
bw.flush();
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 7568 Untied Airlines - Data Structure / Java (0) | 2024.07.23 |
---|---|
[백준] 20376 Counting Monuments - Data Structure / Java (0) | 2024.07.22 |
[백준] 7534 Scavenger Hunt - Graph Theory / Java (1) | 2024.07.20 |
[백준] 8636 Bankiet - Graph Theory / Java (0) | 2024.07.19 |
[백준] 12050 Dynamic Grid (Small), 12051 Dynamic Grid (Large) - Graph Theory / Java (0) | 2024.07.18 |
댓글