[Java] 백준 - 단어공부

less than 1 minute read

BaekJoon 문자열

단어 공부 - Java

사이트 주소: https://www.acmicpc.net/problem/1157


문제

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


입력

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


출력

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


코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in); // 입력을 위해 scanner 사용

		String alpha = sc.next().toUpperCase();
		// 알파벳을 입력받고 그 알파벳을 모두 대문자화 시킨다.

		int[] save = new int[26];
		
		for(int i = 0; i < alpha.length(); i++) {
			int num = alpha.charAt(i)-'A'; // 알파벳을 쪼개 각 알파벳이 사용된 숫자를 저장
			save[num]++; // 배열에 저장
		}
		
		int max = 0;
		char check ='?';
		
		for(int i = 0; i < save.length; i++) {
			if(max < save[i]) {
				max = save[i];
				check = (char) (i+'A'); // 해당 위치 알파벳을 알아보기 위함.
				// i가 0이면 A가 max값
			}
			else if(max == save[i]) { // 가장 많이 사용된 알파벳이 여러 개 존재하는 경우
				check = '?'; // ? 출력
			}
		}
		
		System.out.println(check); // 가장 많이 사용된 알파벳 출력
		
	}

}

Leave a comment