백준 1157 : 단어 공부 nodejs 풀이

김김김·2022년 4월 4일
0

알고리즘 노트

목록 보기
8/16

문제 링크!

다음과 같이 풀었다.

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시간을 더 헤맸다...ㅠ

profile
블로그 이전했습니다. https://sadie100.tistory.com/

0개의 댓글

관련 채용 정보