백준 [JAVA] :: 1157번 단어 공부

s_omi·2023년 1월 6일
0

BAEKJOON (백준)

목록 보기
6/55

📚 문제 정의

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

📝 입력

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

  • 예제 입력 1
Mississipi
  • 예제 입력 2
zZa
  • 예제 입력 3
baaa

📝 출력

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

  • 예제 출력 1
?
  • 예제 출력 2
Z
  • 예제 출력 3
A

💡 코드

import java.io.*;

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

        int []Alphabet = new int[26];
        for(int i = 0; i < 26; i++) {
            Alphabet[i] = 0;
        }

        for(int i = 0; i < s.length(); i++) {
            int num = (int)s.charAt(i);
            if(num < 95) // 대문자일 시
                Alphabet[num - 65]++;
            else
                Alphabet[num - 97]++;
        }

        int max = 0; int temp = 0; int index = 0;
        for(int i = 0; i < 26; i++) {
            if(max < Alphabet[i]) {
                max = Alphabet[i];
                index = i;
            }
        }

        for(int i = 0; i < 26; i++) {
            if(max == Alphabet[i] && temp == 0) 
                temp = 1;
            else if (max == Alphabet[i] && temp == 1) 
                temp = 2;
        }

        if(temp > 1)
            System.out.print("?");
        else {
            int num = index + 65;
            char ch = (char)num;
            System.out.print(ch);
        }
    }
}
profile
공부한 거 올려요 :)

0개의 댓글