第24回【JavaScript】配列の入力 1、配列の入力 2、配列の入力 3

現在取り組んでいるのは、paiza ラーニング問題集「配列メニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

JavaScript をゼロから勉強してみよう、のコーナー 24 回目です。

最近、別の業者様とやり取りをしていて、スピード感に驚きました。早い・・・方ではなく、遅い方で。質問を投げても全く返答がない。しびれを切らして催促すると、「現在調査中です。●日までに返答します。」と、1 週間後の日付を指定される。その●日に、「現在調査中です。●日までに返答します。」と、再び 1 週間後の日付が指定される。電話で催促したら、その日のうちに回答がありました。どういうことでしょうかねぇ。

それでは、今日も頑張ってみようと思います。

配列の入力 1 (paizaランク D 相当)

以下の数列の全要素を改行区切りで出力してください。

8 1 3 3 8 1 1 3 8 8

入力される値

入力は与えられません。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

数列の全要素を改行区切りで出力してください。

8
1
3
3
8
1
1
3
8
8

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

入力は与えられません。

前回も同じような問題を解いたような。前回と違う解き方を考えてみようか。

JavaScript
const l = [8, 1, 3, 3, 8, 1, 1, 3, 8, 8];
for (let el of l) {
    console.log(el);
};
Python
L = [8, 1, 3, 3, 8, 1, 1, 3, 8, 8]
for l in L:
    print(l)

配列の入力 2 (paizaランク D 相当)

10 個の整数 a_i (1 ≤ i ≤ 10) が半角スペース区切りで与えられます。
この数列の全要素を改行区切りで出力してください。


入力される値

a_1 a_2 ... a_9 a_10

10 個の整数 a_i が半角スペース区切りで与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

数列の全要素を改行区切りで出力してください。

a_1
a_2
...
a_9
a_10

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

* a_i は 1 以上 100 以下の整数


入力例

1 2 3 4 5 6 7 8 9 10

出力例

1
2
3
4
5
6
7
8
9
10

今までやってきたものが、標準入力から与えられるようになる、だけ、かな?

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 l = lines[0].split(/\s/).map(Number);
  for (let el of l) {
      console.log(el);
  }
});
Python
A = input().split()
for a in A:
    print(a)

配列の入力 3 (paizaランク D 相当)

1 行目に整数 N が与えられます。
2 行目に、N 個の整数 a_i (1 ≤ i ≤ N) が半角スペース区切りで与えられます。
この数列の全要素を改行区切りで出力してください。


入力される値

N
a_1 ... a_N

1 行目に整数 N が与えられます。
2 行目に、N 個の整数 a_i が半角スペース区切りで与えられます。

入力値最終行の末尾に改行が1つ入ります。


期待する出力

数列の全要素を改行区切りで出力してください。

a_1
a_2
...
a_N

また、末尾に改行を入れ、余計な文字、空行を含んではいけません。


すべてのテストケースにおいて、以下の条件をみたします。

* N は 1 以上 100 以下の整数
* a_i は 1 以上 100 以下の整数


入力例

5
1 2 3 4 5

出力例

1
2
3
4
5

与えられるものをすべて利用して問題を解く。今までの解き方で解いたら N っていらんやん。

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 l = lines[1].split(/\s/).map(Number);
  for (let i = 0; i < n; i++) {
      console.log(l[i]);
  }
});
Python
N = int(input())
A = input().split()
for i in range(N):
    print(A[i])

最後に

様々なパターンでの解き方を学んで、様々なパターンの仕様に対応出来るようになりたい。そのために、細かいルールをきちんと調べて、知っておく必要があるんだなぁ、と思いながら解いています。

セミコロンのルール。調べれば調べるほどいろいろなルールがあって、何が正しいのかよく分からなくなります。必要と書いている人も不必要と書いている人もいて、メダパニ。誰かツッコミをお願いします。(わからない方は DQ 9 以降でメダパニ回復で検索)

引き続き、よろしくお願いいたします!

Python の第24回はこちら