본문 바로가기
PS/BOJ

백준 9612 자바 - Maximum Word Frequency (boj 9612 java)

by Nahwasa 2022. 4. 9.

문제 : 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();
    }
}

댓글