https://www.acmicpc.net/problem/1157
문자열에서 특정 문자의 개수를 셀 수 있는지 물어보는 문제이다.
방법1
let input = require('fs').readFileSync('dev/stdin').toString().toUpperCase();
let countArr = [];
for (let i = 65; i <= 90; i++) {
let a = String.fromCharCode(i);
let index = input.indexOf(a);
let count = 0;
while (index !== -1) {
count++;
index = input.indexOf(a, index + 1);
}
countArr.push(count);
}
let result;
const filtering = countArr.filter(i => Math.max(...countArr) === i)
if(filtering.length > 1){
result = '?'
console.log(result);
}
if(filtering.length === 1){
const result = countArr.indexOf(filtering[0])
console.log(String.fromCharCode(result+65));
}
방법2
let input = require('fs').readFileSync('dev/stdin').toString().trim().toUpperCase();
const obj = {};
const result = [];
input.split("").forEach((alphabet) => {
if(alphabet in obj) obj[alphabet] += 1;
else obj[alphabet] = 1;
})
const max = Math.max(...Object.values(obj))
for(const key in obj){
if(obj[key] === max) result.push(key);
}
if(result.length>1){
console.log('?')
} else {
console.log(result[0])
}
비고
https://deeplify.dev/front-end/js/count-characters-in-string
첫번째 풀이는 위 방법 참조했다.
'기타 > 알고리즘(백준)' 카테고리의 다른 글
[js] 백준 1929번 소수구하기 (0) | 2022.11.22 |
---|---|
[JS] 백준 1193번 분수 찾기 (0) | 2022.10.25 |
[JS] 백준 3052번 나머지 (배열 중복 요소 제거 방법 세 가지) (0) | 2022.09.29 |
[JS] 백준 1110번 더하기 사이클 (0) | 2022.09.25 |
[JS] 백준 2480 주사위 세개 (0) | 2022.09.21 |