列を数える
Question
質問リンク
Silver 4
Logic
デフォルト構造:dp
1.dpリストに4つの数字を配置します. a.連続増加現在値 b.連続増加の最大値 c.連続下降の現在値 d.連続的に減少した最大値 の数字ごとに前の数字と比較します(最初の数字は同じ数字です).
3-1. 前の数より大きい:a増加、b値更新、c初期化(1)
3-2. 同じ場合:a、cインクリメント、b、d値が最新
3-3. 小:a初期化、c増加、d値最新 Code
質問リンク
Silver 4
Logic
デフォルト構造:dp
1.dpリストに4つの数字を配置します.
3-1. 前の数より大きい:a増加、b値更新、c初期化(1)
3-2. 同じ場合:a、cインクリメント、b、d値が最新
3-3. 小:a初期化、c増加、d値最新
from gettext import dpgettext
from sys import stdin
N = int(stdin.readline().rstrip())
data = list(map(int,stdin.readline().rstrip().split()))
dp=[0,0,0,0]
prev = data[0]
for s in data:
if prev < s:
dp[0] += 1
dp[1] = max(dp[1],dp[0])
dp[2] = 1
elif prev == s:
dp[0] += 1
dp[1] = max(dp[1],dp[0])
dp[2] += 1
dp[3] = max(dp[3],dp[2])
else :
dp[0] = 1
dp[2] += 1
dp[3] = max(dp[3],dp[2])
prev=s
print(max(dp[1],dp[3]))
Reference
この問題について(列を数える), 我々は、より多くの情報をここで見つけました https://velog.io/@swany0509/백준-2491-수열テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol