본문 바로가기
코딩테스트 준비/백준

[백준] 1157번 - 단어 공부 [Java]

by mwzz6 2025. 1. 1.

https://www.acmicpc.net/problem/1157

 

[백준] 1157번 - 단어 공부 [Java]
[백준] 1157번 - 단어 공부 [Java]


1.  아이디어

 

배열에 알파벳이 등장한 횟수를 저장하면 간단하게 해결할 수 있다.


2. 문제풀이

 

입력의 문자열의 각 문자를 소문자로 변경 후 알파벳의 개수를 세는 배열에 저장을 해줬다.

이후 배열을 순회하며 가장 큰 개수와 가장 큰 개수가 등장한 횟수, 해당 알파벳을 갱신하며 저장해줬다.


3. 코드

 

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        char[] input = br.readLine().toCharArray();
        int[] cntArr = new int[26];

        for (char c : input) {
            cntArr[Character.toLowerCase(c) - 'a']++;
        }

        int max = 0;
        int maxCnt = 0;
        char maxChar = '?';
        for (int i = 0; i < cntArr.length; i++) {
            if (cntArr[i] > max) {
                max = cntArr[i];
                maxCnt = 1;
                maxChar = (char) (i + 'A');
            } else if (cntArr[i] == max) {
                maxCnt++;
            }
        }

        if (maxCnt == 1) System.out.println(maxChar);
        else System.out.println("?");
    }
}

4. 후기