[백준/node.js] 1157번: 단어공부

string_main·2022년 7월 28일
0

Algorithm

목록 보기
1/3
post-thumbnail

문제

풀이

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를 어떻게 찾아낼지에서 고민을 오래 했다. (근데 생각보다 별거 아니었음...)
알고리즘 문제는 내 생각을 코드로 적어내는게 어렵지 막상 코드 이해 자체는 어렵지 않다.
그래서 레퍼런스 코드를 보는 것을 최대한 지양해야 하나보다.

profile
FE developer

0개의 댓글