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

김겜김·2024년 1월 14일
0

🎈문제


🎲입출력


출력값

[Running] node "c:\Users\TED\Desktop\백준알고리즘\test\6단계\n1157.js"
?

[Done] exited with code=0 in 0.121 seconds

문제해결방법
맨처음 생각나는거는 반복문과 조건문을 이용해서 해결해보자였고 어떻게 해결할지 조금 답답해서 찾아본결과 알파벳을 저장할수있는 배열과 Map() 사용하고,
대문자와 소문자를 구별하기위해 toUpperCase() 사용하고,
알바벳이 포함되어있는지 확인하기 위해 has() 사용해고 조건문과 반복문을 적절히 섞으면 해결할수 있는 문제였습니다.


🗂️코드

const fs = require('fs');

try {
  //문제풀이용
  //const input = fs.readFileSync('answer/level6/n1157.txt').toString().trim();

  //백준제출용
  const input = fs.readFileSync('dev/stdin').toString().trim();

  const charCount = new Map();

  for (const char of input) {
    const uppercaseChar = char.toUpperCase();

    if (charCount.has(uppercaseChar)) {
      charCount.set(uppercaseChar, charCount.get(uppercaseChar) + 1);
    } else {
      charCount.set(uppercaseChar, 1);
    }
  }

  let maxcount = 0;
  let mostA = '';

  for (const [char, count] of charCount) {
    if (count > maxcount) {
      maxcount = count;
      mostA = char;
    } else if (count === maxcount) {
      mostA = '?';
    }
  }

  console.log(mostA);
} catch (err) {
  console.log(err.message);
}
profile
개발에 관심이있습니다

0개의 댓글