알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
char[] qwer = br.readLine().toUpperCase().toCharArray();//mississipi
//System.out.println("qwer>>> "+Arrays.toString(qwer));
int[] answer = new int[26]; // 알파벳-갯수
for(int i=0; i<answer.length; i++)
answer[i] =0;
for(int aski_code : qwer){
int count =0;
int change = aski_code - 'A';
answer[change] +=1;
}
//System.out.println(Arrays.toString(answer));
int max = 0;
int max_index =0;
boolean same = false;
char result =0;
for(int a =0; a < answer.length; a++){
if(answer[a]!=0){
if(answer[a] > max) {
max = answer[a];
max_index = a;
same = false;
}else if(answer[a] == max) {
same = true;
}
}
}// for a
if(same){
System.out.println("?");
}else {
result = (char)(max_index+65);
System.out.println(result);
}
}//main
}//class
포인트
소문자 대문자 구분 안함 -> .toUpperCase()
문자열을 하나하나 쪼개서 배열에 넣음 -> char[] qwer = br.readLine().toUpperCase().toCharArray(); //mississipi
'학습 기록 (Learning Logs) > 알고리즘' 카테고리의 다른 글
[백준] 최댓값 (0) | 2021.09.25 |
---|---|
[백준] 곱하기 (0) | 2021.09.25 |
[백준] 사칙연산 (0) | 2021.09.25 |
[백준] 단어의 개수 (0) | 2021.09.25 |
[백준] A+B (0) | 2021.09.25 |