単語学習
質問(ソース)
👉 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として作成するだけです.
すべて知っているようですが、まだ学ぶことがたくさんあります...今はブロンズレベルなので行くレベルが多すぎます...疲れずにがんばってください.それは勝利だ.
Reference
この問題について(単語学習), 我々は、より多くの情報をここで見つけました https://velog.io/@donq/단어-공부-javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol