【ABC152 C】「Low Elements」を解く【Python3】

abc152c

「AtCoder」解説一覧へ

Nの順列P1 , … , Pi , … , PNが与えられたときに、条件を満たす整数iの個数を求める問題です。

難しいことは考えずに、Piの数字が、これまで出てきた数字の中で一番小さいかどうかを判定していくとうまくいきます。

(「4 2 5 1 3」だと、3つ目と5つ目が条件を満たさない)

提出
n = int(input())
p = list(map(int, input().split()))

num = p[0]
ans = 1

for i in range(1, n):
    if num >= p[i]:
        ans += 1
        num = p[i]

print(ans)

Nを整数で受け取り、Pを配列で受け取ります。

最小値の初期値は配列の先頭の数字です。

先頭の数字は条件を満たしているため、「ans」の初期値は1になります。

for文を使って、最小値と2つ目以降のPiの関係をif文で判定し、Piの方が小さければ、「ans」が1つ増え、このPiが最小値になります。

「num」の初期値を無限、もしくは条件よりも大きい数字にして、配列の先頭からfor文を回す方法もありますね。

【ABC152】解説記事リスト

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です