単語学習


質問(ソース)


👉 https://www.acmicpc.net/problem/1157

私の接近


  • ずっとobjectを利用して問題を解決しようと思っていたのですが、今回はobjectを利用して問題を解決したほうがいいので試してみました.

  • 「文字をキーとして、個数を値として、その中で最も高いものを最大に設定し、1つ以上の文字が最大になった場合」?戻す.
  • に答える

    const fs = require("fs");
    const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
    let input = fs.readFileSync(filePath).toString().trim().toLowerCase();
    const charMap = {};
    console.log(typeof charMap);
    
    for (let char of input){
        charMap[char] = charMap[char] ? charMap[char] + 1 : 1;
    }
    let max = Math.max.apply(null, Object.values(charMap));
    let maxChar = '';
    let count = 0;
    for(let char in charMap){
        if(charMap[char] === max){
            maxChar = char;
            count++;
        }
    }
    
    if(count > 1){
        console.log('?');
    }else{
        console.log(maxChar.toUpperCase());
    }

    今日の勉強と教訓


  • objectの読み込み方法を熟知するように訓練します.

  • for in,for,foreach実は今でも混同されていますもう一度見ます.

  • Math.max.apply(null,array)を使用して配列自体を入れることができます.

  • Object.values(object)はvalues値をarrayとして作成するだけです.

  • すべて知っているようですが、まだ学ぶことがたくさんあります...今はブロンズレベルなので行くレベルが多すぎます...疲れずにがんばってください.それは勝利だ.