第43回【JavaScript】i 番目の出力 3、i 番目の出力 4
現在取り組んでいるのは、paiza ラーニング問題集「配列メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
JavaScript をゼロから勉強してみよう、のコーナー 43 回目です。
ここを考えるのが一番大変な気がしているのだけれど。ちょっと手を離さないといけなくなって下書き保存して閉じて、さぁ、続きをやろう、と開き直したら、消えていました。悲しくなりました。なんでだ・・・。
それでは、今日も頑張ってみようと思います。
i 番目の出力 3 (paizaランク D 相当)
1 行目に整数 N, M が与えられます。
2 行目に M 個の文字列 s_1, s_2, …, s_M が半角スペース区切りで与えられます。
N 番目の文字列 s_N を出力してください。
入力される値
N M
s_1 s_2 ... s_M
1 行目に整数 N, M が与えられます。
2 行目に M 個の文字列 s_1, s_2, …, s_M が半角スペース区切りで与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
N 番目の文字列 s_N を出力してください。
s_N
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* M は 1 以上 5 以下の整数
* N は 1 以上 M 以下の整数
* s_i (1 ≤ i ≤ M) は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列
入力例
3 5
a b c d e
出力例
c
インデックスがゼロから始まる問題さえ忘れなければ、間違えることはない、かな。
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,m] = lines[0].split(/\s/).map(Number);
const L = lines[1].split(/\s/);
console.log(L[n-1]);
});
Python
N,M = map(int,input().split())
S = input().split()
print(S[N - 1])
i 番目の出力 4 (paizaランク D 相当)
1 行目に整数 N, M, L が与えられます。
2 行目に M 個の文字列 s_1, s_2, …, s_M が半角スペース区切りで与えられます。
N 番目の文字列 s_N の L 番目の文字を出力してください。
入力される値
N M L
s_1 s_2 ... s_M
1 行目に整数 N, M, L が与えられます。
2 行目に M 個の文字列 s_1, s_2, …, s_M が半角スペース区切りで与えられます。
入力値最終行の末尾に改行が1つ入ります。
期待する出力
N 番目の文字列 s_N の L 番目の文字を出力してください。
(s_N)_L
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* M は 1 以上 5 以下の整数
* N は 1 以上 M 以下の整数
* s_i (1 ≤ i ≤ M) は数字または大文字・小文字のアルファベットからなる長さ 1 以上 10 以下の文字列
* L は 1 以上 s_N の文字数以下の整数
入力例
3 5 2
abc def ghi jkl mno
出力例
h
JavaScript において、文字列の中の一文字ずつの扱いはどうなっているのだろうか。
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,m,l] = lines[0].split(/\s/).map(Number);
const L = lines[1].split(/\s/);
console.log(L[n-1][l-1]);
});
Python
N,M,L = map(int,input().split())
S = input().split()
print(S[N-1][L-1])
最後に
先に「後で」フォルダを確認してから、次のことを調べればいい。ごもっとも! しかし、興味は移ろいやすく、その瞬間の興味に引っ張られがちなのです。
文字列を配列として扱う、が非推奨なんて聞いた記憶があるなぁ、と、何年か前に、charAt() を利用して書いていた記憶があったので、改めて調べ直してみたら、ES5 からは文字列を配列として扱ってよくなっていたらしい。2009 年の話。そんな昔に JavaScript を書いた記憶はないんだけれど。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません