컴공댕이 공부일지

[java] 백준 ( 1157 단어공부 ) 아스키 코드 활용 본문

문제 풀이/코딩 문제 풀이 모음

[java] 백준 ( 1157 단어공부 ) 아스키 코드 활용

은솜솜솜 2023. 4. 7. 15:44
728x90

단어 공부 1157

브론즈1

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

 

1157번: 단어 공부

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

www.acmicpc.net

 

 

정답코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		
		String w = s.nextLine();
		int l = w.length();
		int a[] = new int[26];
		
		for(int i=0; i<l; i++) { //배열 인덱스 0~25에 A~Z까지에 넣기
			if(w.charAt(i)>=65 && w.charAt(i)<=90) {
				a[w.charAt(i)-65] ++;
			} else {
				a[w.charAt(i)-97] ++;
			} 
		}
		
		int maxIndex = 0;
		int count = 0;
		int maxCount = 0;
		
		for(int i=0; i<26; i++) { //횟수 제일 많은 인덱스 찾기
			if(a[i]>count) {
				maxIndex=i;
				count=a[i];
			}
		}
		
		for(int i=0; i<26; i++) { //가장 많은 횟수가 몇 번이나 겹치는지
			if(a[i]==count) {
				maxCount++;
			}
			
			if(maxCount>=2) { //2개 이상 겹치면 바로 ? 출력 후 반복문 빠져나와.
				System.out.println("?");
				break;
			}
		}
		
		
		if(maxCount<2) { //겹치지 않는다면 바로 출력
			System.out.println((char)(maxIndex+65));
		}
		
	}
}
728x90
Comments