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
'PS > BOJ' 카테고리의 다른 글
백준 1412 자바 - 일방통행 (BOJ 1412 JAVA) (0) | 2021.10.11 |
---|---|
백준 3015 자바 - 오아시스 재결합 (BOJ 3015 JAVA) (4) | 2021.10.10 |
백준 2759 자바 - 팬케이크 뒤집기 (BOJ 2759 JAVA) (0) | 2021.10.07 |
백준 15993 자바 - 1, 2, 3 더하기 8 (BOJ 15993 JAVA) (0) | 2021.10.07 |
백준 22866 자바 - 탑 보기 (BOJ 22866 JAVA) (0) | 2021.10.05 |
댓글