백준 1157

8506 단어 algorithmalgorithm

for...of : 이터러블에 사용 가능
reduce
Object.values(obj)를 활용하여 문제를 풀어보자.

Object.values(obj)로 이터러블 생성가능

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\n');
input = input[0].toUpperCase();
const arr = [];
for (let i = 0; i < input.length; i++) {
  arr[i] = input[i];
}

const obj = arr.reduce((acc, cur) => {
  if (!acc[cur]) acc[cur] = 1;
  else acc[cur]++;
  return acc;
}, {});

let max = 0;
let maxStr = '';

for (let key in obj) {
  if (obj[key] > max) {
    max = obj[key];
    maxStr = key;
  }
}

const newArr = [];
for (let value of Object.values(obj)) {
  newArr.push(value);
}

newArr.sort((a,b) => a-b);

if (newArr[newArr.length - 1] === newArr[newArr.length - 2]) console.log('?');
else console.log(maxStr);

1157번 제출
for...of - JavaScript | MDN
Max Chars(가장 많이 쓰인 문자 찾기) Node.js(JavaScript) :: 감공사

좋은 웹페이지 즐겨찾기