第47回【Python】ある数以上以下の要素の列挙 1、ある数以上以下の要素の列挙 2、ある数以上以下の要素の列挙 3

2023年11月20日

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

はじめに

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

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

都道府県が 47 って誰が決めたのかしらないけれど、なんだかしっくりきます。まぁ、子どもの頃から 44 都道府県だと教わっていれば、それがしっくりきたりするのでしょうけれど。

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

ある数以上以下の要素の列挙 1

1 行目に整数 N が与えられます。
2 行目に N 個の整数 a_1, a_2, …, a_N が与えられます。
N 個の整数のうち、5 以上の数をすべて、入力された順に改行区切りで出力してください。
また、5 以上の数が一個もない場合は、何も出力しなくても問題ありません。


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

・* N は 1 以上 10 以下の整数
・* a_i (1 ≤ i ≤ N) は 1 以上 10 以下の整数


5
9 1 5 3 7

一つずつ要素を調べていって、その要素が 5 以上であれば出力する。問題文が分かりにくく書いてあるだけで、やることは単純。

Python
N = int(input())
A = map(int,input().split())
for a in A:
    if a >= 5:
        print(a)
VBA
N = Cells(1, 1)
temp = Split(Cells(2, 1), " ")
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To UBound(temp)
    A(i) = Val(temp(i))
Next
For i = 0 To N - 1
    If A(i) >= 5 Then Debug.Print A(i)
Next

ある数以上以下の要素の列挙 2

1 行目に整数 N, K が与えられます。
2 行目に N 個の整数 a_1, a_2, …, a_N が与えられます。
N 個の整数のうち、K 以上の数をすべて、入力された順に改行区切りで出力してください。
また、K 以上の数が一個もない場合は、何も出力しなくても問題ありません。


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

・* N, K は 1 以上 10 以下の整数
・* a_i (1 ≤ i ≤ N) は 1 以上 10 以下の整数


5 3
5 2 4 3 1

● 以上の ● を標準出力から受けるようになるだけ。簡単。

Python
N,K = map(int,input().split())
A = list(map(int,input().split()))
for a in A:
    if a >= K:
        print(a)
VBA
NK = Split(Cells(1, 1), " ")
N = Val(NK(0))
K = Val(NK(1))
temp = Split(Cells(2, 1), " ")
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To UBound(temp)
    A(i) = Val(temp(i))
Next
For i = 0 To N - 1
    If A(i) >= K Then Debug.Print A(i)
Next

ある数以上以下の要素の列挙 3

1 行目に整数 N が与えられます。
2 行目に N 個の整数 a_1, a_2, …, a_N が与えられます。
N 個の整数のうち、N 個の整数の平均以上の数をすべて、入力された順に改行区切りで出力してください。


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

・* N は 1 以上 10 以下の整数
・* a_i (1 ≤ i ≤ N) は 1 以上 10 以下の整数


5
1 2 3 4 5

平均を先に出して、平均以上のものを出力する問題。平均の出し方にもいろいろある。

Python
N = int(input())
A = list(map(int,input().split()))
avg = sum(A) / N
for a in A:
    if a >= avg:
        print(a)
VBA
N = Cells(1, 1)
temp = Split(Cells(2, 1), " ")
Dim A() As Integer
ReDim A(N - 1)
avg = 0
For i = 0 To UBound(temp)
    A(i) = Val(temp(i))
    avg = avg + A(i)
Next
avg = avg / N
For i = 0 To N - 1
    If A(i) >= avg Then Debug.Print A(i)
Next

最後に

Python ならば、statistics モジュールや numpy を使って、mean 関数で平均を求めることが出来る。VBA ならば、average 関数がある。今回は小学生でも知っている平均の出し方、でやりましたが。

AI に仕事を奪われる前に、人間でなきゃできないファジーな仕事をしよう。AI にはアイはないはず。アイのこもった仕事をしよう。というのが、AI 一色になりつつある LeoSaki(旦那)の周囲に伝えたい言葉。

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

Python学習,Python,paiza

Posted by LeoSaki