본문 바로가기

알고리즘/알고리즘

[백준] 단어 공부

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

 

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

 

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));
        StringBuilder sb = new StringBuilder();
        char[] qwer = br.readLine().toUpperCase().toCharArray();//mississipi
        //System.out.println("qwer>>> "+Arrays.toString(qwer));
        int[] answer = new int[26]; // 알파벳-갯수
        for(int i=0; i<answer.length; i++)
            answer[i] =0;
        for(int aski_code : qwer){
            int count =0;
            int change = aski_code - 'A';
            answer[change] +=1;
        }
        //System.out.println(Arrays.toString(answer));

        int max = 0;
        int max_index =0;
        boolean same = false;
        char result =0;
        for(int a =0; a < answer.length; a++){
            if(answer[a]!=0){
                if(answer[a] > max) {
                    max = answer[a];
                    max_index = a;
                    same = false;
                }else if(answer[a] == max) {
                    same = true;
                }
            }
        }// for a

        if(same){
            System.out.println("?");
        }else {
            result = (char)(max_index+65);
            System.out.println(result);
        }
    }//main
}//class

 

포인트

소문자 대문자 구분 안함 -> .toUpperCase()

문자열을 하나하나 쪼개서 배열에 넣음 -> char[] qwer = br.readLine().toUpperCase().toCharArray(); //mississipi

'알고리즘 > 알고리즘' 카테고리의 다른 글

[백준] 최댓값  (0) 2021.09.25
[백준] 곱하기  (0) 2021.09.25
[백준] 사칙연산  (0) 2021.09.25
[백준] 단어의 개수  (0) 2021.09.25
[백준] A+B  (0) 2021.09.25