const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().toUpperCase().split('');
let obj = {};
let max = 0;
let result = '';
for(let i = 0; i < input.length; i++) {
obj[input[i]] = (obj[input[i]] || 0) + 1;
}
for(key in obj){
if(max < obj[key]) { // 최대값을 가진 key 찾기
max = obj[key];
result = key;
} else if(max === obj[key]) { // 같은 최대값을 가진 다른 key 찾기
result = '?';
}
}
console.log(result);
처음엔 간단한 문제라고 생각했는데, 생각보다 고민이 필요했던 문제였다.
빈도수 세기는 객체를 이용하면 될 것 같았다. 여기까지는 잘 생각했는데..
같은 최대값을 가진 다른 key를 어떻게 찾아낼지에서 고민을 오래 했다. (근데 생각보다 별거 아니었음...)
알고리즘 문제는 내 생각을 코드로 적어내는게 어렵지 막상 코드 이해 자체는 어렵지 않다.
그래서 레퍼런스 코드를 보는 것을 최대한 지양해야 하나보다.