[백준 1157]단어 공부 - JAVA 풀이
바로가기
문제
해석
- 문자열이 주어졌을 때, 가장 많이 사용된 알파벳을 출력해라.
풀이
크기가 26인 int형 배열 하나를 선언한다. (알파벳 개수)
- 각각의 알파벳이 몇 번 사용 되었는지
1번
배열에 입력한다.- 아스키 코드를 사용한다. 문자가
97
보다 크다면 -‘a’ 아니면 -‘A’를 해준다.(a-a는 0이 되어서 0번째 배열의 값이 올라간다.)
- 아스키 코드를 사용한다. 문자가
- 가장 많이 사용 된 알파벳과 그 다음으로 사용 된 알파벳을 찾는다.
코드
import java.util.*;
import java.io.*;
public class Main{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
int[] al = new int[26];
int fir = 0, sec = -1;
for(int i = 0; i < s.length(); i++){
int index = s.charAt(i);
if(index >= 97)
al[index-'a']++;
else
al[index-'A']++;
}
for(int i = 1; i < 26; i++){
if(al[i] >= al[fir]){
sec = fir;
fir = i;
}
}
if(sec != -1 && al[fir] == al[sec]) //'a' 또는 'A' 만 입력받으면 sec가 -1이다.
bw.write("?");
else
bw.write(fir+'A'); //다시 대문자 알파벳으로 출력
bw.flush();
bw.close();
}
}