DHistory
[Baekjoon] DP - 2491 수열 본문
문제
2491번: 수열
0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾
www.acmicpc.net
풀이
"""
d[n]: n일 때, 가장 긴 구간이 되는 길이
"""
import sys
n = int(sys.stdin.readline().rstrip())
numbers = list(map(int, sys.stdin.readline().rstrip().split()))[:n]
def solution(numbers):
# 가장 긴 구간이 되는 길이의 최솟값은 1이다.
d1 = [1] * len(numbers)
d2 = [1] * len(numbers)
for i in range(len(numbers) - 1):
if numbers[i + 1] >= numbers[i]:
d1[i + 1] = d1[i] + 1
numbers = numbers[::-1]
for i in range(len(numbers) - 1):
if numbers[i + 1] >= numbers[i]:
d2[i + 1] = d2[i] + 1
return max(d1 + d2)
print(solution(numbers))
채점 결과
'Computer Science > Algorithm' 카테고리의 다른 글
[Baekjoon] DP - 1463 1로 만들기 (0) | 2023.09.11 |
---|---|
[Baekjoon] 15624 - 피보나치 수 7 (0) | 2023.09.11 |
[Baekjoon] DP - 2839 설탕 배달 (0) | 2023.09.11 |
[Baekjoon] DP - 25644 최대 상승 (0) | 2023.09.11 |
[Baekjoon] DP - 19947 투자의 귀재 배주형 (0) | 2023.09.11 |