문제 : https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
Sol )
1. 길이 26의 cnt 배열 선언 및 0으로 초기화
2. 문자열을 돌면서 cnt [문자 - "A"의 아스키코드] 값을 1씩 증가 ( cnt [0] = a의 횟수 )
3. cnt배열의 최댓값( 가장 많이 출력된 문자의 횟수)을 저장
4. 만약 최댓값이 두 개 이상의 문자일 경우 "?" 출력
5. 최대값이 한 개일 경우 해당 문자 출력
소스코드 )
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().toUpperCase().split('\n');
const cnt_arr = new Array(26).fill(0);
for (let i = 0 ; i<input[0].length ; i++){
cnt_arr[input[0][i].charCodeAt(0) - "A".charCodeAt(0)]++;
}
let max_num = Math.max(...cnt_arr);
let result;
for (let i = 0 ; i<cnt_arr.length ; i++){
if (cnt_arr[i] === max_num){
if (result !== undefined){
result = "?"
break;
}
result = String.fromCharCode(i+"A".charCodeAt(0));
}
}
console.log(result);
'Problem Solving > boj.kr (JS)' 카테고리의 다른 글
[BOJ / 자바스크립트] 1152 : 단어의 개수 (0) | 2022.02.26 |
---|---|
[BOJ / 자바스크립트] 2908 : 상수 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 2675 : 문자열반복 (0) | 2022.02.13 |
[BOJ / 자바스크립트] 10809 : 알파벳 찾기 (0) | 2022.02.13 |
[BOJ / 자바스크립트] 11720 : 숫자의 합 (0) | 2022.02.13 |
댓글