名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

No.116 門松列(1)

回答

#44605 No.116 門松列(1) - yukicoder

最初問題文が読み取れなかったのですが,要は連続する3つの要素を見て,真ん中になるものが,右端または左端になるかどうかを判断する.
(要するになっていない)
あと連続した3つの要素の場合は重複する要素を消して考える.

問題文の読み取りが大変だなあという点以外は,結構素直に実装すれば何とかなりますね.

n = int(input())
ali = list(map(int, input().split()))
res = 0
for i in range(n-2):
    cli = list(set(ali[i:i+3]))
    cli.sort()
    if len(cli) == 3 and (ali[i] == cli[1] or ali[i+2] == cli[1]):
        res += 1
print(res)