第43回【Python】i 番目の出力 3、i 番目の出力 4

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

はじめに

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

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

極々基本的な作業しか PC で行っていらっしゃらない方に、効率的に作業する方法を教えなければならないことがあります。言葉選びから気を付けないと、頭の上にはっきりとクエスチョンマークが見えて、目に見えてやる気を喪失される事態が発生します。自分の常識が他人の常識である、という考えは捨てなければならないと改めて反省しています。

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

i 番目の出力 3

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


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

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


3 5
a b c d e

インデックスが 0 から始まることだけ注意すれば難しい問題ではない。

Python
N,M = map(int,input().split())
S = input().split()
print(S[N - 1])
VBA
NM = Split(Cells(1, 1), " ")
N = Val(NM(0))
M = Val(NM(1))
S = Split(Cells(2, 1), " ")
Debug.Print S(N - 1)

i 番目の出力 4

1 行目に整数 N, M, L が与えられます。
2 行目に M 個の文字列 s_1, s_2, …, s_M が半角スペース区切りで与えられます。
N 番目の文字列 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

こちらも、インデックスが 0 から始まることだけ注意すれば難しい問題ではない。N 番目、L 番目の両方が 0 から始まることに注意。

Python
N,M,L = map(int,input().split())
S = input().split()
print(S[N-1][L-1])
VBA
NML = Split(Cells(1, 1), " ")
N = Val(NML(0))
M = Val(NML(1))
L = Val(NML(2))
S = Split(Cells(2, 1), " ")
Debug.Print Mid(S(N - 1), L, 1)

VBA だと、文字列から L 番目の文字を抜き出す、って感じでなんとかやってます。

最後に

文字列を配列として受け取ることができる Python と、文字列は文字列だと主張する VBA で、異なるやり方になってしまった。これも、閃き。だから、引き出しをたくさん持っておくことが重要なんだと思う。

引き出しを多く持つために必要なのは、書くこと。いろんなパターンを想定して、書くこと。まぁ、想定外のことが多く起きるので実務でコードを書くということほど力になる。

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

Python学習,Python,paiza

Posted by LeoSaki