일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 11053
- 파이썬
- 괄호
- 11기
- 순열
- 9095
- 백준
- 뒤로가기
- 코틀린
- permutation
- Python
- LCS
- 최소공배수
- lcm
- Combination
- itertools
- 1182
- Kotlin
- 나머지
- expo
- 안드로이드
- 11054
- 11057
- 매일11시
- 6603
- 1260
- Android
- 코테
- 앱
- 홈화면
- 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..