https://www.acmicpc.net/problem/2491
설계 시 주의했던 점)
1. 수열이 증가 or 감소할 수 있기 때문에 증가하는 수열의 길이와 감소하는 수열의 길이를 따로 측정해줬다.
맨 끝네서 max 함수를 통해 실제 최대값을 구했다.
2. 문자열을 끝까지 돌기 전까지는 최대 길이의 수열이 몇인지 모르기 때문에,
증가or 감소하는 수열이 끊길때 (계속 증가or감소하지 않을때), cnt변수를 초기화하면서 continue를 해줬다.
3. 한자리로 이루어진 수열의 정답은 1이다.
즉, tc가
1
1
일때 답은 1이다.
전체코드)
N = int(input())
arr = list(map(int, input().split()))
MAX_up = 1
cnt1 = 1
MAX_down = 1
cnt2 = 1
for i in range(1, N):
if arr[i-1]<=arr[i]:
cnt1 +=1
if cnt1 > MAX_up:
MAX_up = cnt1
else:
cnt1 = 1
continue
for i in range(1, N):
if arr[i-1]>=arr[i]:
cnt2 +=1
if cnt2 > MAX_down:
MAX_down = cnt2
else:
cnt2 = 1
continue
print(max(MAX_up, MAX_down))
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] 백준 2559 수열 (0) | 2022.10.03 |
---|---|
[파이썬] 백준 2304 창고 다각형 (1) | 2022.10.03 |
[파이썬] SWEA 13702 델타검색 (1) | 2022.10.01 |
[파이썬] 백준 2605 줄 세우기 (1) | 2022.10.01 |
[파이썬] 6190 정곤이의 단조 증가하는 수 (1) | 2022.10.01 |