第25回【Python】i番目の出力 1、i番目の出力 2、【次元配列の入出力】i番目の出力 Boss

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

はじめに

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

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

地道に続けて 25 回。真面目に地道にが身上なので、いけるところまで続けていきたいと思っています。目指せ 30 回! 目標はとても低い。

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

i番目の出力 1

整数 K が与えられます。
数列 a が

1 3 5 4 6 2 1 7 1 5

で与えられるとき、数列 a の K 番目の要素を出力してください。

添字がゼロから始まることに注意しろ、問題でしょうか。

Python
K = int(input())
L = [1, 3, 5, 4, 6, 2, 1, 7, 1, 5]
print(L[K - 1])
VBA
K = Cells(1, 1)
L = Array(1, 3, 5, 4, 6, 2, 1, 7, 1, 5)
Debug.Print L(K - 1)

i番目の出力 2

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


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

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


入力例

5
8 1 3 1 3 8 3 8 1 1

今度は数字の配列も標準入力から与えられるらしい。

Python
K = int(input())
A = input().split()
print(A[K - 1])
VBA
K = Cells(1, 1)
A = Split(Cells(2, 1), " ")
Debug.Print A(K - 1)

【次元配列の入出力】i番目の出力 Boss

1 行目に整数 N と整数 K が与えられます。
2 行目に N 個の整数 a_i (1 ≤ i ≤ N) が半角スペース区切りで与えられます。
K 番目の整数 a_K を出力してください。


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

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


入力例

8 3
3 1 8 1 3 8 8 1

要素数 N 個の N が問題でしょうか。N がなくても答えられる問題なわけですし。

Python
N,K = map(int,input().split())
A = input().split()
print(A[K - 1])

回答確認したら「N の情報がなくてもリストを生成できます」って記載があった。N の情報がないと対応できない言語もあるということで、Python って楽だなぁ。

VBA
S = Split(Cells(1, 1), " ")
K = Val(S(1))
A = Split(Cells(2, 1), " ")
Debug.Print A(K - 1)

VBA でも N の情報がなくても回答を導き出すことができました。

最後に

やり方は幾つもあって、いろんなパターンに対応できるようにしておくことが大事なんだと思う。引き出しがいっぱいあった方が何かと役に立つ。

今回やったものも、基本的には string 型で扱っていて、厳密には正解といっていいのかどうか不安な点もある。入力値の条件としては「整数」と明記されているわけだから。Python の場合は、出力は文字列で問題ないのだけれど、VBA になると明確な違いが生じる。

細かいところまでつきつめていくと、・・・やっぱり面白いなぁと思います。

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

Pythonpaiza,学習,Python

Posted by LeoSaki