본문 바로가기
알고리즘/완전탐색

[백준][Python] 15779번 Zigzag

by 임짠짠 2022. 7. 25.
반응형
 

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 값을 계속 갱신해준다.

반응형

댓글