본문 바로가기

자바/문제풀이

[JAVA | 백준 1157 ] 단어 공부

문제 해석

  • 알파벳 대소문자로 된 단어 입력
  • 가장 많이 사용된 알파벳 알아내기
  • 대소문자 구분 없음

출력

  • 가장 많이 사용된 알파벳을 대문자로 출력
  • 가장 많이 사용된 알파벳이 여러개인 경우 ? 출력

 

내가 생각한 알고리즘

  1. 스캐너로 단어 입력
  2. 알파벳 개수만큼의 리스트 만들어서 FOR문으로 각 개수 저장
  3. 리스트에서 MAX 값 출력
  4. MAX값이 여러개인 경우 ? 출력
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int [] arr = new int[26];
        String s = sc.next();

        for(int i=0; i<s.length(); i++){
            //대문자범위 65~90
            if('A'<= s.charAt(i)&& s.charAt(i)<='Z'){
                arr[s.charAt(i)-'A']++;
            }
            //소문자범위 97~122
            else{
                arr[s.charAt(i)-'a']++;
            }
        }

        //최대값 출력
        int max=-1;
        char ch = '?';

        for(int i=0; i<26; i++){
            if(max<arr[i]){
                max = arr[i];
                ch = (char)(i+65);
            }
            else if (arr[i]==max)
                ch = '?';
            
            
        }

        System.out.println(ch);

    }
}