第41回【JavaScript】文字列の配列の入力 1、文字列の配列の入力 2、文字列の配列の入力 3

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

はじめに

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

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

コロナのワクチン接種は効果がない、という話を耳にします。4 回のワクチン接種を受けて、コロナに感染し、5 回目のワクチン接種の後に 2 回目のコロナに感染した私としては、効果があった、とお伝えしたいです。ワクチン接種を受けていなければ、もっと重症化していただろうと。気休めかもしれませんが、対策はしっかりとっておくべきだと思います。

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

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

複数の文字列があります。すべての文字列を改行区切りで出力してください。

eight
one
three
paiza
pa13
813

この問題は配列を用いる練習問題です。
これらの文字列を配列に格納し、その配列からすべての要素を出力する方法を考えてみましょう。


入力される値

入力は与えられません。

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


期待する出力

すべての文字列を改行区切りで出力してください。

eight
one
three
paiza
pa13
813

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


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

入力は与えられません。

ふむぅ。やるべきことは書かれているので、そのまま書いてみる。

JavaScript
L = ["eight", "one", "three", "paiza", "pa13", "813"];
for (let i = 0; i < L.length; i++) console.log(L[i]);
Python
L = ["eight", "one", "three", "paiza", "pa13", "813"]
print(len(L))

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

10 個の文字列 s_1, s_2, …, s_10 が半角スペース区切りで与えられます。
すべての文字列を改行区切りで出力してください。


入力される値

s_1 s_2 ... s_10

10 個の文字列 s_1, s_2, …, s_10 が半角スペース区切りで与えられます。

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


期待する出力

すべての文字列を改行区切りで出力してください。

s_1
s_2
...
s_10

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


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

* s_i (1 ≤ i ≤ 10) は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列


入力例

a b c d e f g h i j

出力例

a
b
c
d
e
f
g
h
i
j

標準入力から与えられる個数が分かっているので、難しいことはない。

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/);
  for (let i = 0; i < 10; i++) console.log(L[i]);
});
Python
S = input().split()
for s in S:
    print(s)

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

1 行目に整数 N が与えられます。
2 行目に N 個の文字列 s_1, s_2, …, s_Nが半角スペース区切りで与えられます。
すべての文字列を改行区切りで出力してください。


入力される値

N
s_1 s_2 ... s_N

1 行目に整数 N が与えられます。
2 行目に N 個の文字列 s_1, s_2, …, s_N が半角スペース区切りで与えられます。

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


期待する出力

すべての文字列を改行区切りで出力してください。

s_1
s_2
...
s_N

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


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

* N は 1 以上 10 以下の整数
* s_i (1 ≤ i ≤ N) は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列


入力例

5
a b c d e

出力例

a
b
c
d
e

与えられる文字列の個数が可変になるだけ。さっきと変わらない。

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/);
  for (let i = 0; i < n; i++) console.log(L[i]);
});
Python
N = int(input())
S = input().split()
for s in S:
    print(s)

最後に

paiza の良いところは、関連する問題を段階的に出題してくれるところかと思います。めんどくさがらずに、1 問 1 問取り組むことで、身についている実感を得ることが出来ます。

正直、今日挑戦した問題なんて、簡単で、なんの役に立つかはわかりません! なんかの役には立つと思いますよ? それは、実際にやってみた際に、例えば、文字列なのにいつもの癖で .map(Number) をつけてしまった、みたいなミスから得られることだってあるはずです。

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

Python の第41回はこちら