BOJ_1157_단어공부_JAVA
문제 : 단어공부
링크 : BOJ_1157_단어공부
접근 방식
단어가 주어지면, 대소문자를 구분하지 않고 가장 많이 사용된 알파벳을 출력하면 되는 문제이다. 여러 개가 동시에 존재하는 경우에는 ?를 출력한다.
나는 문자열을 Char의 배열로 입력받아, 만약 소문자인 경우에는 32를 빼주어 모든 문자를 대문자로 통일시켰다. 그 후에는 카운트 배열을 만들어 어떤 문자가 몇 개 있는지 카운트 한 뒤에, 최대 개수의 문자를 출력해주었다. 만일 최대 개수의 문자가 여러개라면 ?를 출력해주었다.
소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ_1157_단어공부 {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[200];
String str = in.readLine();
for(int i=0,n=str.length();i<n;i++) {
int temp = str.charAt(i);
if(temp > 96) {
temp = temp - 32;
}
arr[temp]++;
}
int max = 0;
char ans = '.';
for(int i=0;i<200;i++) {
if(max < arr[i]) {
max = arr[i];
ans = (char) i;
}else if(max != 0 && max == arr[i]) {
ans = '?';
}
}
System.out.println(ans);
}
}