【JavaScript】白駿1157号:単語学習
ソース
1157:単語学習(acmicpc.net)
質問する
アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
入力
最初の行には、アルファベットの大文字と小文字からなる単語が表示されます.与えられた単語の長さは10万を超えない.
しゅつりょく
最初の行は、この語で最も多く使われているアルファベットを大文字で出力します.しかし、最も使用頻度の高いアルファベットが複数存在する場合?出力します.
入力例1
Math.max.apply()関数
1157:単語学習(acmicpc.net)
質問する
アルファベットの大文字と小文字の単語を指定した場合は、この単語で最も使用されるアルファベットが何であるかを決定するプログラムを作成します.ただし、大文字と小文字は区別されません.
入力
最初の行には、アルファベットの大文字と小文字からなる単語が表示されます.与えられた単語の長さは10万を超えない.
しゅつりょく
最初の行は、この語で最も多く使われているアルファベットを大文字で出力します.しかし、最も使用頻度の高いアルファベットが複数存在する場合?出力します.
入力例1
Mississipi
サンプル出力1?
入力例2zZa
サンプル出力2Z
入力例3z
サンプル出力3Z
入力例4baaa
サンプル出力4A
コード#コード#Math.max.apply()関数
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().toUpperCase();
let alphabet = new Array(26).fill(0);
for (let i=0; i<input.length; i++) { // 단어에서 사용된 알파벳의 개수 count
alphabet[input.charCodeAt(i)-65]++; // 대문자 A의 아스키 코드는 65
}
let max= Math.max.apply(null, alphabet);
let maxIdx = alphabet.indexOf(max);
let cnt = 0;
for (let i=0; i<alphabet.length; i++) {
if (max==alphabet[i]) {
cnt++;
if(cnt>1) { break; }
}
}
if(cnt==1) {
console.log(String.fromCharCode(maxIdx+65));
}
else { // cnt>1
console.log("?");
}
Reference
この問題について(【JavaScript】白駿1157号:単語学習), 我々は、より多くの情報をここで見つけました https://velog.io/@jc15853/JavaScript-백준-1157번-단어-공부テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol