다음과 같이 풀었다.
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().toUpperCase();
const arr = input.split("");
let letterCount = {};
for (let i = 0; i < arr.length; i++) {
if (!Object.keys(letterCount).includes(arr[i])) {
letterCount = {
...letterCount,
[arr[i]]: 1,
};
} else {
const num = letterCount[arr[i]];
letterCount = {
...letterCount,
[arr[i]]: num + 1,
};
}
}
const values = Object.values(letterCount);
const max = Math.max(...values);
const index = values.indexOf(max);
if (values.lastIndexOf(max) !== values.indexOf(max)) {
console.log("?");
} else {
console.log(Object.keys(letterCount)[index]);
}
아니 처음에 input 받는 부분에 trim()을 빼먹었는데 그거 때문에 틀림 처리가 됐다...
trim()을 넣어줘야 되는 건지 오늘 처음 알았다... 하 덕분에 1시간을 더 헤맸다...ㅠ