https://www.acmicpc.net/problem/11054
11054번: 가장 긴 바이토닉 부분 수열
첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000)
www.acmicpc.net
n = int(input())
num = list(map(int, input().split()))
num_reverse = list(reversed(num))
dp = [1 for i in range(n)]
dp_r = [1 for i in range(n)]
for i in range(n):
for j in range(i):
if num[i]> num[j]:
dp[i] = max(dp[i],dp[j]+1)
if num_reverse[i] > num_reverse[j]:
dp_r[i] = max(dp_r[i],dp_r[j]+1)
answer = [0 for i in range(n)]
for i in range(n):
answer[i] = dp[i] + dp_r[n-1-i]-1
print(max(answer))
이거 진짜 새로운거 배웠다.
[백준] 11054 가장 긴 바이토닉 부분 수열 풀이 - (python 파이썬)
문제: https://www.acmicpc.net/problem/11054 사용 언어: Python 파이썬 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N..
seohyun0120.tistory.com
이분 블로그를 참고했다.
이문제를 풀때 중요한것 또 메모지에이션
전에 있던 값 들 중 길이가 가장 긴것을 기반으로 그 값을 더해서 하는것
이게 중요하다. 잘 알아두자.
반응형
'코딩 > 파이썬(python)' 카테고리의 다른 글
[백준] 13458번 시험 감독 - 파이썬 (0) | 2022.03.25 |
---|---|
빠르게 입력받기 import sys -파이썬 (0) | 2022.02.06 |
파이썬 가상환경 구성하기 (0) | 2021.07.08 |
filter (0) | 2021.06.09 |
[백준] 한수 - 파이썬 (0) | 2021.05.09 |