풀이
- 주어진 문자열을 대문자로 변환 후 해시맵에 나오는 문자 수 대입
- 해시맵을 토대로 가장 많은 문자를 출력하기. 가장 많은 문자가 여러 개일 경우 생각하기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Problem1157 {
static Map<Character, Integer> map = new HashMap<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputString = br.readLine();
//대문자 변환
inputString = inputString.toUpperCase();
//Map 갱신
for(int i = 0; i < inputString.length(); i++){
//처음 갱신
if(!map.containsKey(inputString.charAt(i))){
map.put(inputString.charAt(i), 1);
} else {
map.put(inputString.charAt(i), map.get(inputString.charAt(i))+1);
}
}
//가장 많은 알파벳 찾기
//가장 많은 알파벳이 여러개 존재 판별
boolean flag = false;
int maxNum = 0;
Character answer = null;
Iterator<Character> keys = map.keySet().iterator();
while(keys.hasNext()){
Character key = keys.next();
//최댓값 중복
if(maxNum==map.get(key)){
flag = true;
answer = '?';
} else if(map.get(key) > maxNum){
//플레그 초기화
flag = false;
maxNum = map.get(key);
answer = key;
}
}
System.out.println(answer);
}
}