본문 바로가기
JAVA

[백준/자바] 1157번 단어 공부

by 동백05 2022. 3. 7.

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

 

1157번: 단어 공부

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

www.acmicpc.net

package algorithm;
import java.util.Scanner;
public class mar07 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s=new Scanner(System.in);
		int arr[]=new int[26];
		String word=s.next();
		// 단어에 사용된 알파벳 개수 체크
		for(int i=0;i<word.length();i++) {
			int alphabet=word.charAt(i);
			if(alphabet>=93) {
				arr[alphabet-97]+=1;
			}else {
				arr[alphabet-65]+=1;
			}
		}
		
		// 제일 많이 사용된 알파벳 확인
		int max=0;
		char result=' ';
		for(int i=0;i<26;i++) {
			if(arr[i]>max) {
				max=arr[i];
				result=(char)(i+65);
			}else if(arr[i]==max) {
				//만약 가장 많이 사용된 알파벳이 2개 이상이면 '?' 출력
				result='?';
			}
		}
		
		System.out.print(result);

	}

	

}

아스키코드에서 A가 65라는 사실 까먹고 그냥 i를 넣고 변환하다가 왜 이상하게 깨지는 현상 생기지 하고 고민하다가 65를 더하지 않은 사실을 깨달았다.

댓글