第84回【JavaScript】数値の出現率
現在取り組んでいるのは、paiza ラーニング問題集「データセット選択メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 84 回目です。
夜中、妙に暑苦しくて目が覚めました。ルナちゃんがべったりなのはいつものことですが、レオくんもべったりくっついて寝ていました。ルナちゃんもレオくんももたれかかるように体重を預けてきていて、嬉しいけれど苦しいです。幸せだけれど。
それでは、今日も頑張ってみようと思います。
数値の出現率 (paizaランク C 相当)
0 以上 9 以下の整数が N 個与えられます。各数値の出現回数を求め、「0」の出現回数、「1」の出現回数、…「9」の出現回数、をこの順に半角スペース区切りで1行に出力してください。
入力される値
N
A_1 A_2 ... A_N
入力値最終行の末尾に改行が1つ入ります。
期待する出力
「0」の出現回数 count0
、「1」の出現回数 count1
、…「9」の出現回数 count9
をこの順に、半角スペース区切りで1行に出力してください。
count0 count1 ... count9
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ 入力はすべて整数
・ 1 ≦ N ≦ 100
・ 0 ≦ A_i ≦ 9 (1 ≦ i ≦ N)
入力例
5
1 2 3 3 6
出力例
0 1 1 2 0 0 1 0 0 0
リストを利用する方法と連想配列を利用する方法。
JavaScript(リスト)
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = [];
var reader = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
reader.on('line', (line) => {
lines.push(line);
});
reader.on('close', () => {
const n = Number(lines[0]);
const a = lines[1].split(/\s/).map(Number);
const li = Array(10).fill(0);
for (let val of a) {
li[val]++;
}
console.log(...li);
});
JavaScript(連想配列)
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = [];
var reader = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
reader.on('line', (line) => {
lines.push(line);
});
reader.on('close', () => {
const n = Number(lines[0]);
const a = lines[1].split(/\s/);
dic();
for (let val of a) {
dic[val]++;
}
console.log(Object.values(dic).join(' '));
});
const dic = () => {
for (let i = 0; i < 10; i++) dic[i] = 0;
};
Python
N = int(input())
A = [int(x) for x in input().split()]
li = [0]*10
for a in A:
li[a] += 1
print(*li,sep=' ')
最後に
連想配列を利用する方法については、本当にこれで良いのか謎です。連想配列の Value だけを半角スペース区切りで並べる方法については、素敵な書き方だなぁと思いました。すぐに辿り着けなくて、いっぱい試行錯誤して、学習の予定時間を大幅に超過してしまいました。
まだまだ素敵な書き方が多く隠れてそうです。いっぱい学習して、覚えたいと思います。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません