반응형
코드
n = int(input())
n_list = list(map(int,input().split()))
max_l = 2
cnt = 2
for i in range(n-2):
if n_list[i] <= n_list[i+1] and n_list[i+1] <= n_list[i+2]:
cnt = 2
elif n_list[i] >= n_list[i+1] and n_list[i+1] >= n_list[i+2]:
cnt = 2
else:
cnt += 1
max_l = max(max_l,cnt)
print(max_l)
설명
지그재그 수열을 만족하지 않는 경우 최소 수열의 길이는 2이다.
i, i+1, i+2가 차례대로 증가하거나 감소하는 경우 cnt 값을 최소 수열 길이인 2로 바꿔준다.
그렇지 않은 경우 cnt를 1만큼 증가시킨다.
for문을 돌 때마다 max_l 값을 계속 갱신해준다.
반응형
'알고리즘 > 완전탐색' 카테고리의 다른 글
[백준][Python] 5671번 호텔 방 번호 (0) | 2022.07.26 |
---|---|
[백준][Python] 5883번 아이폰 9S (0) | 2022.07.26 |
[백준][Python] 16439번 치킨치킨치킨 (0) | 2022.07.22 |
[백준][Python] 17521번 Byte Coin (0) | 2022.07.22 |
[백준][Python] 14912번 숫자 빈도수 (0) | 2022.07.21 |
댓글