일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최소공배수
- 순열
- 11054
- expo
- 1260
- 안드로이드
- 6603
- 홈화면
- Kotlin
- 매일11시
- 뒤로가기
- 1182
- 코틀린
- Android
- 11057
- 11053
- Python
- 백준
- 앱
- 코테
- 괄호
- 나머지
- permutation
- itertools
- Combination
- 11기
- 파이썬
- 9095
- LCS
- lcm
- Today
- Total
목록11054 (2)
황소개발자
많이 풀면 보입니다 n = int(input()) lst = list(map(int, input().split())) a = [1 for i in range(n)] b = [1 for i in range(n)] for i in range(n): for j in range(i): if lst[i] > lst[j]: a[i] = max(a[i], a[j] + 1) lst.reverse() for i in range(n): for j in range(i): if lst[i] > lst[j]: b[i] = max(b[i], b[j] + 1) b.reverse() c = [0 for i in range(n)] for i in range(n): c[i] = a[i] + b[i] print(max(c) - 1)
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 ran..