第29回【JavaScript】二次元配列の入力 1、二次元配列の入力 2
現在取り組んでいるのは、paiza ラーニング問題集「配列メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 29 回目です。
AWS では新しいサービスを追っかけるだけで大変です。更に、既存サービスのアップデート頻度も高く、久しぶりにそのサービスのコンパネを開いたら見た目が全然違う、ということも多々あります。問題は、ネットの情報が追いついていないため、手探りで作業を始めないといけないというところです。
それでは、今日も頑張ってみようと思います。
二次元配列の入力 1 (paizaランク D 相当)
以下の二次元配列を宣言し、全要素を各行ずつ半角スペース区切りで出力し、各行の終わりで改行してください。
1 3 5 7
8 1 3 8
入力される値
入力は与えられません。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
二次元配列の全要素を各行ずつ半角スペース区切りで出力し、行の終わりで改行してください。
1 3 5 7
8 1 3 8
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
入力は与えられません。
前回か前々回か・・・なんか似たようなことをやったような。
JavaScript
const l = [[1, 3, 5, 7], [8, 1, 3, 8]];
for (let i = 0; i < l.length; i++) {
const len = l[i].length;
for (let j = 0; j < len; j++) {
if (j == len - 1) {
console.log(l[i][j]);
} else {
process.stdout.write(l[i][j] + ' ');
}
}
}
Python
L = [[1, 3, 5, 7], [8, 1, 3, 8]]
for i in range(len(L)):
for j in range(len(L[i])):
print(L[i][j], end="")
if j < len(L[i]) - 1:
print(end=" ")
else:
print()
二次元配列の入力 2 (paizaランク D 相当)
1 行目に整数 M が与えられます。
2 行目以降に 5 行 M 列の配列が与えられます。上から i 番目、左から j 番目の整数は a_ij です。
全要素を各行ずつ半角スペース区切りで出力し、行の終わりで改行してください。
入力される値
M
a_11 ... a_1M
...
a_51 ... a_5M
1 行目に整数 M が与えられます。
2 行目以降に 5 行 M 列の配列が与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
二次元配列の全要素を各行ずつ半角スペース区切りで出力し、行の終わりで改行してください。
a_11 ... a_1M
...
a_51 ... a_5M
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* M, a_ij は 1 以上 100 以下の整数
入力例
4
1 2 3 4
0 0 0 0
8 1 3 8
1 10 100 99
15 68 48 15
出力例
1 2 3 4
0 0 0 0
8 1 3 8
1 10 100 99
15 68 48 15
行数はわかっていて、列数を標準入力から与えられる、ということですか。
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 m = Number(lines[0]);
const a = [];
for (let i = 1; i <= 5; i++) {
a.push(lines[i].split(/\s/).map(Number));
}
for (let i = 0; i < a.length; i++) {
const len = a[i].length;
for (let j = 0; j < len; j++) {
if (j == len - 1) {
console.log(a[i][j]);
} else {
process.stdout.write(a[i][j] + ' ');
}
}
}
});
Python
M = int(input())
A = [list(map(int,input().split())) for _ in range(5)]
for a in A:
print(*a,sep=" ")
最後に
コードが長くなってしまうのは仕方がないとして、やっていること自体は Python と同じです。ここまでやってきて、JavaScript は素直な印象。いや、アロー関数とか突き詰めていくと、癖は強いんでしょうけれど。
面白いんですが、自分がどれくらい成長しているのかは謎です。まだ、そこまで JavaScript を利用したコードを書いてはいないので。うーん、時間が足りない!
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません