유물/└ 백준

<백준> 1157번: 단어 공부 (런타임 에러 (SyntaxError))

디벅잉 2022. 1. 22. 21:36
728x90

 

👾

 

문제

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

 

풀이(오답)

import fs from "fs";

const charList = fs.readFileSync("/dev/stdin").toString().trim();
const upperCharList = charList.toUpperCase().split("");
let countList = [];

for (let i = 65; i <= 90; i++) {
  const alphabet = String.fromCharCode(i);
  let count = 0;
  upperCharList.forEach((char) => {
    char === alphabet ? (count += 1) : null;
  });
  countList.push(count);
}

const maxNum = Math.max(...countList);

let duplicated = 0;

countList.forEach((char) => {
  char === maxNum ? (duplicated += 1) : null;
});

duplicated === 1 ? console.log(maxNum) : console.log("?");

1. (공통) 런타임 에러 (SyntaxError)가 발생하였으나, 아직 해결하지 못했습니다.

2. (line 7~14) 알파벳이 반복되는 횟수를 배열로 저장하였습니다.

3. (line 16) Math.max 메서드를 활용하여 최대 반복 횟수를 찾았습니다.

4. (line 18~24) 최대 반복 횟수에 중복이 있는지 판단하여, 판단 결과에 따라 다른 값을 출력합니다.

 

 

728x90