第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 で、異なるやり方になってしまった。これも、閃き。だから、引き出しをたくさん持っておくことが重要なんだと思う。
引き出しを多く持つために必要なのは、書くこと。いろんなパターンを想定して、書くこと。まぁ、想定外のことが多く起きるので実務でコードを書くということほど力になる。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません