[백준]/java

[백준]단어 공부(1157) - java

0_TLS 2023. 1. 17. 22:57

[문제]

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

 

[입력]

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

 

[출력]

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

 

<예제 입력>

Mississipi

zZa

z

baaa

 

<예제 출력>

?

Z

Z

A

 

[소스코드]

import java.util.*;

public class Main {

	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		String str = s.next();
		char[] S = str.toCharArray();
		
		int[] arr = new int[26];  //A~Z까지 26자 (0~25)
		int count = -1;
		char ch  = '?';
		
		for(int i=0; i<S.length; i++) {         //대문자:65~90  소문자:97~122
			if(S[i] >= 65 && S[i] <= 90)
			{
				arr[S[i]-65]++;
			}
			else if(S[i] >= 97 && S[i] <= 122) {
				arr[S[i]-97]++;
			}
		}
		
		for(int i=0; i<26; i++) {
			if(arr[i] > count) {
				count = arr[i];
				ch = (char)(i + 65);
			}
			else if(arr[i] == count) {
				ch = '?';
			}
		}
		System.out.print(ch);
		s.close();
	}
}

'[백준] > java' 카테고리의 다른 글

[백준] 요세푸스 문제 0(11866) - java  (0) 2023.02.10
[백준] 카드2(2164) - java  (1) 2023.02.10
[백준] 큐2(18258) - java  (0) 2023.02.10
[백준] 단어의 개수(1152) - java  (0) 2023.01.17
[백준] 문자열 반복(2675) - java  (4) 2023.01.17