일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 11기
- permutation
- Android
- 1260
- Combination
- 9095
- 11057
- 앱
- 매일11시
- 11054
- 괄호
- 6603
- 최소공배수
- 파이썬
- 코테
- 순열
- itertools
- 백준
- 11053
- expo
- 안드로이드
- 1182
- LCS
- 뒤로가기
- Kotlin
- Python
- 코틀린
- 홈화면
- lcm
- 나머지
Archives
- Today
- Total
황소개발자
백준 11054 python 파이썬 가장긴바이토닉수열 @@황소처럼 우직하게@@ 본문
반응형
n = int(input())
lst = list(map(int, input().split()))
dp_left = [1] * n
dp_right = [1] * n
for i in range(n):
for j in range(i):
if lst[j] < lst[i]:
if dp_left[i] < dp_left[j] + 1:
dp_left[i] = dp_left[j] + 1
for i in range(n - 1, -1, -1):
for j in range(n - 1, i, -1):
if lst[j] < lst[i]:
if dp_right[i] < dp_right[j] + 1:
dp_right[i] = dp_right[j] + 1
dp = [dp_left[i] + dp_right[i] for i in range(n)]
print(max(dp) - 1)
해결 아이디어
왼쪽에서 최대 증가 수열 dp 만들고
오른쪽에서 최대 증가 수열 dp 만들고
그리고 둘이 합치고 1 빼준다.
반응형
'백준 문제 풀이' 카테고리의 다른 글
백준 9252 파이썬 python LCS 2 @@황소처럼 우직하게@@ (0) | 2020.02.20 |
---|---|
백준 2133 파이썬 python 타일 채우기 @@황소처럼 우직하게@@ (0) | 2020.02.20 |
백준 9251 python 파이썬 LCS : 최장 공통 부분 수열 @@황소처럼 우직하게@@ 꼭 알아야되는 코딩문제 (0) | 2020.02.19 |
백준 11051 파이썬 python 이항 계수 2 @@ 황소처럼 우직하게 @@ 나눠하면되고, 합쳐서하면 왜 틀릴까.. (0) | 2020.02.19 |
백준 11057 오르막 수 python 파이썬 @@황소처럼우직하게 @@숏코딩 (0) | 2020.02.19 |
Comments