[Java] 백준 #1157 (문자열)

정상준·2022년 10월 16일
0

백준

목록 보기
46/99
post-thumbnail

📍 출처

출처 : https://www.acmicpc.net/problem/1157

📝 문제

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

⌨️ 입력

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

🖨 출력

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

⌨️ 예제 입력 1

Mississipi

🖨 예제 출력 1

?

⌨️ 예제 입력 2

zZa

🖨 예제 출력 2

Z

⌨️ 예제 입력 3

z

🖨 예제 출력 3

Z

📚 내가 제출한 코드

import java.util.Arrays;
import java.util.Scanner;
public class App {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int[] arr = new int[26];
		String str = sc.next();
	
		for(int i = 0 ; i < str.length(); i++){
			int n = str.charAt(i);

			if(n>='A' && n<='Z')
				arr[n-'A']++;
			else
				arr[n-'a']++;
		}
		char ch = '?';
		int max = -1;
		
		for(int i = 0 ; i < 26 ; i++){
				if(max < arr[i]){
					max = arr[i];
					ch = (char)(i + 65);
				}else if(max == arr[i]){
					ch = '?';
				}
		}
		System.out.print(ch);
	}
}

✏️ 내가 제출한 코드에 대한 설명

  • 대소문자 구분이 없어야하므로 대문자와 소문자 각각 'A'와 'a'를 빼줘 같은 알파벳의 경우 대소문자 구분 없이 같은 값이 나오게 만들어준다.
profile
안드로이드개발자

0개의 댓글