알고리즘/완전탐색
[백준][Python] 15779번 Zigzag
임짠짠
2022. 7. 25. 20:38
반응형
15779번: Zigzag
어떤 수열에서, 연속된 3개의 수를 보았을 때, 그 수가 단조증가 수열이거나, 단조감소 수열인 경우가 없으면 이 수열을 "지그재그 수열" 이라고 말한다. 좀 더 정확하게는, 길이 N의 수열 A가 모
www.acmicpc.net
코드
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 값을 계속 갱신해준다.
반응형