第52回【Python】指定要素があるかの判定、指定要素の先頭位置
現在取り組んでいるのは、paiza ラーニング問題集「配列活用メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 52 回目です。
ChatGPT 便利ですね。LeoSaki(旦那)もよく利用します。が、本当に正しいかどうかの判断は結局人間がやる必要があります。ChatGPT が吐き出したものを鵜呑みにしてはならない。まぁ、それを差し引いても便利なのは間違いないのですけれど。
それでは、今日も頑張ってみようと思います。
指定要素があるかの判定
配列 A の要素数 N と整数 K , 配列 A の各要素 A_1, A_2, …, A_N が与えられるので、A に K が 1 つでも含まれている場合は Yes
を、含まれていない場合は No
を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 100
・0 ≦ K , A_i ≦ 100 (1 ≦ i ≦ N)
5 3
1
2
3
4
5
「含まれている場合」って汎用性高い気がします。
Python
N,K = map(int,input().split())
A = [int(input()) for _ in range(N)]
if K in A:
print('Yes')
else:
print('No')
VBA
NK = Split(Cells(1, 1), " ")
N = Val(NK(0))
K = Val(NK(1))
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To N - 1
A(i) = Cells(i + 2, 1)
Next
For Each v In A
If v = K Then
Debug.Print "Yes"
Exit Sub
End If
Next
Debug.Print "No"
指定要素の先頭位置
配列 A の要素数 N と整数 K , 配列 A の各要素 A_1, A_2, …, A_N が与えられるので、K であるような A の要素のうち、要素番号が最小のものを出力してください。
A に K が含まれない場合は -1 を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 100
・0 ≦ K , A_i ≦ 100 (1 ≦ i ≦ N)
5 3
1
2
3
4
3
これも、なんとなく実務で利用することが多そうな内容。
Python
N,K = map(int,input().split())
A = [int(input()) for _ in range(N)]
ans = -1
for i in range(N):
if A[i] == K:
ans = i + 1
break
print(ans)
VBA
NK = Split(Cells(1, 1), " ")
N = Val(NK(0))
K = Val(NK(1))
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To N - 1
A(i) = Cells(i + 2, 1)
Next
ans = -1
For i = 0 To N - 1
If A(i) = K Then
ans = i + 1
Exit For
End If
Next
Debug.Print ans
最後に
実務でも間違いなく使うことがありそうな内容でした。Python の in 演算子をいつも忘れてしまう。VBA 同様にひとつずつ確認するものアリだとは思うけれど、便利な演算子が用意されているときは積極的に使いたい。
今回も VBA 同様にひとつずつ確認するコードを書いている途中で、もっと楽なやり方あったような、と突然思い出して書き直したのは内緒。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません