나의 풀이
# 입력
n = int(input())
arr = list(map(int,input().split()))
sml2big = [1]*n
big2sml = [1]*n
# 처리
def find_max(data, dp):
for i in range(n-1):
if data[i] <= data[i+1]:
dp[i+1] = dp[i] + 1
return max(dp)
print(max(find_max(arr,sml2big),find_max(arr[::-1], big2sml)))
CODE REVIEW
- dp를 이용한 문제. data[i]와 data[i+1]을 비교해서 크거나 같으면 count를 추가해주면 된다.
- 주어진 array를 뒤집으면
작거나 같다
가크거나 같다
가 되기 때문에 함수 하나를 만들어놓고arr
과arr[::-1]
을 각각 입력했다. - arr을 2차원, 3차원으로 확장하면 재밌는 문제를 만들어낼 수 있을 것 같다.