개발자 첫걸음/백준
백준 문자열 5 - 단어 공부 [1175]
프로아마추어
2022. 10. 5. 15:25
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
나의 답안
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/*
단어가 주어졌을 때 가장 많이 사용된 알파벳을 대문자로 출력하라.
사용횟수가 가장 많은 알파벳이 2개 이상이면 ?를 반환한다.
*/
const input = require("fs")
.readFileSync(0)
.toString()
.trim();
const obj = {};
// 대문자로 변환 후 개수 카운트
input
.toUpperCase()
.split("")
.forEach((s) => {
obj[s] = obj[s] !== undefined ? ++obj[s] : 1;
});
// 빈도수가 가장 많은 수 체크
let max = Math.max(...Object.values(obj));
const answerArr = [];
// max(빈도수)값과 일치하는 key값만 배열에 담는다.
for (let key of Object.keys(obj)) {
if (obj[key] === max) {
answerArr.push(key);
}
}
const answer = answerArr.length === 1 ? answerArr[0] : "?";
console.log(answer);
|
cs |