-
[백준] 2491 - 수열알고리즘 2023. 5. 15. 17:12728x90
1. 문제
https://www.acmicpc.net/problem/2491
2491번: 수열
0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾
www.acmicpc.net
2. 접근
1. 문제가 같거나 증가하기 or 같거나 감소하는 구간의 길이중 최대를 구하라! 이다.
2. 우리는 LIS를 쉽게 떠올릴 수 있다. -> d = [1] * n 을 두고 n-1동안 증가 or 감소하는 지 체크해보면 된다
3. 풀이
# 2491 실버4 import sys input = sys.stdin.readline n = int(input()) nums = list(map(int,input().split())) d = [1] * n for i in range(n-1): if nums[i] <= nums[i+1]: d[i+1] += d[i] d2 = [1] * n for i in range(n-1): if nums[i] >= nums[i+1]: d2[i+1] += d2[i] max1 = max(d) max2 = max(d2) print(max(max1, max2))
'알고리즘' 카테고리의 다른 글
[백준] 2331 - 반복 수열 (0) 2023.05.15 [백준] 1449 - 수리공 (0) 2023.05.15 [백준] 1713 - 후보 추천하기 (0) 2023.05.13 [백준] 14716 - 현수막 (0) 2023.05.13 [백준] 1969 - DNA (1) 2023.05.13