[Javascript] (백준 1157) 단어 공부

Chaedie·2022년 6월 22일
0

Javascript - PS

목록 보기
17/24
post-custom-banner

내 풀이

//* 인풋 - 디폴트
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = fs.readFileSync(filePath).toString().split('\n');

//* 인풋 - 커스텀, 함수 콜
let word = input[0].trim().toUpperCase();

console.log(sol(word));

//* 로직함수
function sol(word) {
  let map = new Map();
  let len = word.length;

  for (let i = 0; i < len; i++) {
    map.set(word[i], (map.get(word[i]) || 0) + 1);
  }

  let max = Math.max(...map.values());
  let sameCount = 0;
  for (let [k, v] of map) {
    if (v === max) {
      sameCount++;
      answer = k;
    }
  }

  return sameCount === 1 ? answer : '?';
}

다른 사람 풀이

1) 알파벳 갯수만큼 배열 0으로 뿌리고
2) 아스키코드 이용해서 배열에 +13) 배열의 맥스값 구하고
4) 맥스 같은게 있으면 ? 없으면 해당 배열의 순서보고 다시 
아스키코드값으로 알파벳 출력

배운 점, 느낀 점

Java로 풀때였나 그때는 다른 사람 풀이와 비슷하게 코드값으로 했던것 같은데, 지금 보니 Map 활용하는게 좀 더 간단한 것 같다.

프로그래머스 - 해시 문제에서 배운 걸 사용해보았다. 정말! 좋은 기능이다. ㅎㅎ
map.set(key, (map.get(key) || 0) + 1);

profile
TIL Blog - Today's Intensive Learning!
post-custom-banner

0개의 댓글