第50回【Python】指定の要素のカウント、全ての要素の和

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

はじめに

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

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

人間 50 年、下天の内をくらぶれば、夢幻のごとくなり。一度生を受け、滅せぬもののあるべきか。信長公が好んで舞ったと言われる敦盛。50 回なんて、ほんの夢や幻のようなものだ、と言われると泣いちゃう。

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

指定の要素のカウント

配列 A の要素数 N と整数 K, 配列 A の各要素 A_1, A_2, …, A_N が与えられるので、配列 A に K がいくつ含まれるか数えてください。


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

・1 ≦ N ≦ 100
・0 ≦ A_i, K ≦ 100 (1 ≦ i ≦ N)


5 4
1
2
3
4
5

前回までのちゃんと説明のある問題と打って変わって、無慈悲に問だけを投げかけてくる。霧島京子さんの陰謀なのか。Python だから六村リオさんか?

Python
N,K = map(int,input().split())
A = [int(input()) for _ in range(N)]
print(A.count(K))
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 = 0
For Each v In A
    If v = K Then ans = ans + 1
Next
Debug.Print ans

全ての要素の和

配列 A の要素数 N と配列 A の各要素 A_1, A_2, …, A_N が整数として与えられるので、配列 A の全ての要素の和を求めてください。


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

・1 ≦ N ≦ 100
・0 ≦ A_i ≦ 100 (1 ≦ i ≦ N)


5
1
2
3
4
5

足し算いぇーい。半角スペース区切りで渡されるよりも 1 行ずつ渡された方がリアリティがある、気がする。

Python
N = int(input())
A = [int(input()) for _ in range(N)]
print(sum(A))
VBA
N = Cells(1, 1)
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To N - 1
    A(i) = Cells(i + 2, 1)
Next
ans = 0
For Each v In A
    ans = ans + v
Next
Debug.Print ans

最後に

VBA だと split するよりも、1 行ずつ渡された方が助かります。実際の業務だと、半角スペース区切りで渡されることは少ないと思うし。

多分、VBA でやっているような方法が、他の多くの言語で用いられる方法で、そう考えると Python は直感的にわかりやすい言語なんだなぁと感じました。後から見てもわかりやすい!

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

Pythonpaiza,学習,Python

Posted by LeoSaki