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

Pythonby LeoSaki

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

学習サービストッププログラミング学習サイト【paizaラーニング】のメインページ。paiza独自のシステムにより、面倒な環境構築が不要、Webブラウザがあれば5秒で学習が開始できます。わかりやすい1本3分の動画と豊富な演習問題で初心者〜中級者のプログラミング学習を支援します。paiza.jp

はじめに

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

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

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

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

指定の要素のカウント

プログラミング練習問題「指定の要素のカウント」問題を解いてスキルアップ!みんなも一緒に解いてみよう!paiza.jp

配列 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

全ての要素の和

プログラミング練習問題「全ての要素の和」問題を解いてスキルアップ!みんなも一緒に解いてみよう!paiza.jp

配列 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 は直感的にわかりやすい言語なんだなぁと感じました。後から見てもわかりやすい!

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

LeoSaki

旦那の方。 猫と嫁とのキャンプをこよなく愛する。 AWS 6 冠達成者。AWS 好き。 ITパスポート、基本情報技術者、応用情報技術者も取得しています。