문제 : boj9612
String에 대해 카운팅을 해야 한다. 따라서 HashMap 등을 사용하면 쉽게 계산할 수 있다. 주의점은 동일한 횟수가 존재할 경우, 사전순으로 뒤에 있는걸 택해야 한다. 코드에서 이하의 부분이 해당 역할을 한다.
maxStr.compareTo(cur) < 0
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
public class Main {
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
HashMap<String, Integer> hm = new HashMap<>();
int max = 0;
String maxStr = "";
while (n-->0) {
String cur = br.readLine();
hm.put(cur, hm.getOrDefault(cur, 0)+1);
if (max < hm.get(cur)) {
max = hm.get(cur);
maxStr = cur;
} else if (max == hm.get(cur) && maxStr.compareTo(cur) < 0) {
maxStr = cur;
}
}
System.out.println(String.format("%s %d", maxStr, max));
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
백준 11004 자바 - K번째 수 (boj 11004 java) (0) | 2022.04.11 |
---|---|
백준 14584 자바 - 암호 해독 (boj 14584 java) (0) | 2022.04.10 |
백준 10090 자바 - Counting Inversions (boj 10090 java) (0) | 2022.04.08 |
백준 4659 자바 - 비밀번호 발음하기 (boj 4659 java) (0) | 2022.04.08 |
백준 2041 자바 - 숫자채우기 (boj 2041 java) (0) | 2022.04.07 |
댓글