본문 바로가기

ALGORITHM

백준 1157 단어 공부 (Java)

1. 문제 링크

 

1157번: 단어 공부

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

www.acmicpc.net

 

2. 문제 및 입출력예제

 

3. 문제 풀이

출력조건이 대문자라서 toUpperCase()를 이용해 전부 대문자로 만든다.

split이 아닌 charAt()을 이용해 한 글자씩 뽑아서 아스키코드의 알파벳으로 바꾸고

반복문을 돌리며 카운트를 한다.

 

4. 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		String str= br.readLine();
		str = str.toUpperCase();
		int[] num = new int[26];
		for(int i=0;i<str.length();i++) {
			num[str.charAt(i)-65]++;
		}
		int max = 0;
		int maxI = 0;
		boolean flag = true;
		for(int i=0;i<num.length;i++) {
			if(num[i]>max) {
				max = num[i];
				maxI = i;
				flag = true;
			}
			else if(num[i]==max) {
				flag = false;
			}
		}
	
		if(flag) {
			System.out.println((char)(maxI+65));
		}
		else {
			System.out.println("?");
		}
		
	}
}

'ALGORITHM' 카테고리의 다른 글

백준 11047 동전 0 (Java)  (0) 2023.01.29
백준 1010 다리놓기 (Java)  (0) 2023.01.28
백준 8958 OX퀴즈 (Java)  (0) 2023.01.26
백준 1547 공 (Java)  (0) 2023.01.25
백준 1931 회의실 배정 (Java)  (0) 2023.01.24