비버놀로지

[BAEKJOON 백준] 1157 단어 공부 본문

ALGORITM/JAVA

[BAEKJOON 백준] 1157 단어 공부

KUNDUZ 2021. 1. 10. 16:52
728x90

www.acmicpc.net/problem/1157

 

1157번: 단어 공부

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

www.acmicpc.net

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

 

먼저 대소문자가 섞여 있기때문에 모두 대문자로 변경해 준다. 그 이유는 출력이 대문자이기 때문에 대문자로 통일해 주었다.

그리고 알파벳 길이만큼의 배열을 만들고, A=0, B=1 ... 위치로 각각의 갯수를 세어 배열에 넣어준다.

 

그후 가장 많이 사용된 알파벳을 출력해 주는데, 가장 많은 알파벳이 여러개 라면 ? 를 출력하도록 했다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		
		String s=sc.next().toUpperCase();
		
		int english[]=new int[26];
		char arr[]=s.toCharArray();
		
		for (int i = 0; i < arr.length; i++) {
			english[arr[i]-'A']++;
		}
		int result=0;
		char resultnum='A';
		for (int i = 0; i < 26; i++) {
			if(english[i]>result) {
				result=english[i];
				resultnum=(char) (i+'A');
			}
		}
		int cnt=0;
		for (int i = 0; i < 26; i++) {
			if(english[i]==result) {
				cnt++;
			}
		}
		if(cnt>=2) {
			System.out.println("?");
		}else {
			System.out.println(resultnum);
		}
	}
}
728x90
Comments