gone

#[백준] 1157 단어공부 본문

알고리즘

#[백준] 1157 단어공부

예쁨받는 돌맹이 2024. 1. 12. 13:42
 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net


 

 

문제 해석)

Q. 가장 많이 사용된 알파벳 구하기

조건 1) 대소문자 구분하지 않는다

조건 2) 결과는 대문자로 출력한다.

조건 3) 최댓값이 같은 알파벳이 여러개인 경우 '?' 출력한다.


제출1) 런타임에러 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();

        if (!str.isBlank()) {
            String upcase = str.toUpperCase();

            // 알파벳 갯수 크기의 배열생성
            int[] arr = new int[26];
            for (byte b : upcase.getBytes()) {
                int n = b - 'A';
                arr[n]++;
            }

            int max = -1;
            char chr = '?';

            for (int i = 0; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                    chr = (char) (arr[i] + 'A');
                } else if (arr[i] == max) {
                    chr = '?';
                }
            }
            System.out.println(chr);
        }

    }
}

 

런타임 에러가 나왔는데 앞으로 굴러도 뒤로 굴러도 왜 오류가 나오는지 모르겠다ㅠㅠ

누가 알려줄사람...