🍣
Kicstart2020 RoundC: Countdown
問題
長さが
アルゴリズムと実装
各要素を一つずつ走査して、previousの要素よりも1小さくなっているかを確認し、Trueの場合には連続していることを表すカウンタを1つ増やす。Falseの場合にはカウンタを0に戻す。
現在の要素が1で、かつカウンタが少なくともK-1になっていればK-countdownが見つかったとして、結果をインクリメントする。(開始位置ではカウンタは0)
T = int(input())
for t in range(1, T + 1):
N, K = list(map(int, input().split()))
data = list(map(int, input().split()))
res = 0
dc = 0
for i in range(1, N):
if data[i] == data[i-1] - 1:
dc += 1
else:
dc = 0
if data[i] == 1 and dc >= K - 1:
res += 1
print('Case #{}: {}'.format(t, res))
Discussion