[백준/파이썬] 2491번

민정·2023년 6월 22일
0

[백준/파이썬]

목록 보기
139/245
post-thumbnail

📍백준 2491번 문제

https://www.acmicpc.net/problem/2491

코드

import sys
input = sys.stdin.readline

n = int(input())

arr = list(map(int, input().split()))
result1 = [1]*n
result2 = [1]*n
for i in range(n-1):
    if arr[i+1] >= arr[i]:
        result1[i+1] += result1[i]

for i in range(n-1):
    if arr[i+1] <= arr[i]:
        result2[i+1] += result2[i]

max1 = max(result1)
max2 = max(result2)
print(max(max1, max2))

풀이

와 엄청 헤맸다..😨
처음 풀었던 방법은 각각을 다 경우의 수를 나누어 계산하는 방법이었다. 근데 오류 발생(!)
예를 들면, 4 1 3 3 2 2 9 2 3에서 133을 인식하고 3322를 인식하지 못해서 틀린 풀이라는걸 알았다...🤮
찾아보니 하나의 for문에서 경우의 수를 구하는 방법이 아니라 같거나 크다 / 같거나 작다에 대한 for문을 각각 돌리는게 맞다는걸 알았다... 우선 성공-

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글