반응형
말만 번지르르하지 별거 없다. 파란 영역 중에 제일 큰 계단을 찾으라는 문제.
아직 스위핑을 안배워서 기본 점수만 받아 보았다.
경우에 따라 잘 나눠서 코딩해주면 된다.
1. 이전값 보다 큰 경우
이전 dp값 +1
2. 이전값과 같은 경우
이전 dp + 0
3. 이전값보다 작을 경우
이전 dp값이 현재 높이보다 작은 경우 : 이전 dp+1
이전 dp값이 현재 높이와 같은 경우 : 이전 dp +0
이전 dp값이 현재 높이보다 클 경우 : 현재 높이값
n=int(input())
h=[0]
h.extend(map(int,input().split()))
dp=[0 for _ in range(n+1)]
dp[1]=h[1]
for x in range(1,n+1):
if h[x]>h[x-1]:
dp[x]=dp[x-1]+1
elif h[x]==h[x-1]:
dp[x]=dp[x-1]
else:
if dp[x-1]<h[x]:
dp[x]=dp[x-1]+1
elif dp[x-1]==h[x]:
dp[x]=dp[x-1]
else:
dp[x]=h[x]
print(max(dp))
반응형