알고리즘

[Java] 백준 1157번 단어 공부

Y1sik 2022. 3. 24. 09:53
728x90

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

 

1157번: 단어 공부

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

www.acmicpc.net

이번 문제는 대문자 소문자 상관없이 알파벳 갯수를 구하는 문제입니다.

범위를 잘 정해주기만 한다면 쉽게 풀릴것입니다.

 

package BJ;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ_단어공부 {
	static String str;
	static int[] arr;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		str = br.readLine();
		arr = new int[26];
		for (int i = 0; i < str.length(); i++) {
			char c = str.charAt(i);
			if('A' <= str.charAt(i) && str.charAt(i) <= 'Z') {
				arr[c - 'A']++;
			}else {
				arr[c - 'a']++;
			}
		}
		
		int max = 0;
		char ch = '?';
		
		for (int i = 0; i < 26; i++) {
			if(arr[i] > max) {
				max = arr[i];
				ch = (char) (i + 'A');
			}
			else if (arr[i] == max) {
				ch = '?';
			}
		}
		System.out.println(ch);
	}

}

 

Ysik Github : https://github.com/Y1sik/Algorithm/blob/main/BJ/BJ_%EB%8B%A8%EC%96%B4%EA%B3%B5%EB%B6%80.java

반응형