본문 바로가기
PS/BOJ

백준 15779 자바 - ZigZag (BOJ 15779 JAVA)

by Nahwasa 2021. 10. 8.

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

 

  i번째 데이터에 대해, i-2, i-1, i 번째 데이터를 살펴보며 단조증가 수열이거나 단조감소 수열일 경우 arr[i] = 0을 기입했고, 지그재그 수열일 경우 1을 기입함.(13line)

 

  그럼 예를들어서 문제에 제시된 2번째 예시 (1,3,4,2,5)의 경우 제가 짠 로직으로는

arr = [0, 0, 0, 1, 1]

와 같이 기입됨.

근데 이 때 1이 연속된 갯수가 결국 지그재그 수열의 길이이므로, 13line처럼 이전값+1을 해주면 연속된 길이도 한꺼번에 구할 수 있음.

 

  최종적으로 arr 배열에 있는 가장 큰 수가 가장 긴 지그재그 수열의 길이이므로 max값을 찾아주고 (19line) 거기에 2를 더해준게 답임. (+2를 해준 것은 처음에 i부터 i-2 까지 3개를 봤기 때문에 2개를 더 더해준 것)

 

https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/15700/BOJ_15779.java

댓글