白準5622 JavaScriptダイヤル



入力


最初の行には、アルファベットの大文字からなる単語が表示されます.単語の長さは2以上、15以下です.

しゅつりょく


最初の行のダイヤルアップに要する最小時間を出力します.

ソリューション

  • どう考えてもルールが見つからない...
  • 文字を数字に変えて比較してみましたが、これは古いのでしょうか?
  • 3、4文字ごとに1カウント
  • を加算
  • コードの簡略化に努めます...
  • const readline = require('readline');
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdin
    });
    
    let input = [];
    
    rl.on('line', function (line){
        input.push(line);
    
    }).on('close',function (){
    
        // A(65) ~ Z(90)
        let str = input[0]
        let count = 0;
    
        for (let i = 0; i<26; i++){
            if (str[i] === 'A' || str[i] === 'B' || str[i] === 'C'){
                count = count + 3;
            } else if (str[i] === 'D' || str[i] === 'E' || str[i] === 'F'){
                count = count + 4;
            } else if (str[i] === 'G' || str[i] === 'H' || str[i] === 'I') {
                count = count + 5;
            } else if (str[i] === 'J' || str[i] === 'K' || str[i] === 'L') {
                count = count + 6;
            } else if (str[i] === 'M' || str[i] === 'N' || str[i] === 'O') {
                count = count + 7;
            } else if (str[i] === 'P' || str[i] === 'Q' || str[i] === 'R' || str[i] === 'S') {
                count = count + 8;
            } else if (str[i] === 'T' || str[i] === 'U' || str[i] === 'V') {
                count = count + 9;
            } else if (str[i] === 'W' || str[i] === 'X' || str[i] === 'Y' || str[i] === 'Z') {
                count = count + 10;
            }
        }
        console.log(count)
    });