일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 11054
- 나머지
- 매일11시
- expo
- 코테
- 홈화면
- 순열
- 11053
- LCS
- 1260
- 괄호
- 11057
- 백준
- 앱
- 안드로이드
- Python
- 1182
- 뒤로가기
- 파이썬
- Combination
- 코틀린
- 9095
- itertools
- permutation
- Android
- Kotlin
- lcm
- 최소공배수
- 6603
- 11기
- Today
- Total
목록분류 전체보기 (181)
황소개발자
많이 풀면 보입니다 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 = [1 for i in range(n)] for i in range(n): for j in range(i): if lst[i] < lst[j]: dp[i] = max(dp[i], dp[j] + 1) print(max(dp))
쉽게 생각해요 n = int(input()) lst = list(map(int, input().split())) dp = [x for x in lst] for i in range(n): for j in range(i): if lst[i] > lst[j]: dp[i] = max(dp[i], dp[j] + lst[i]) print(max(dp))
간간단단 n = int(input()) lst = list(map(int, input().split())) dp = [1 for i in range(n)] array = [[x] for x in lst] for i in range(n): for j in range(i): if lst[i] > lst[j]: if dp[j] + 1 > dp[i]: array[i] = array[j] + [lst[i]] dp[i] = dp[j] + 1 length = 0 flag = 0 for i in range(n): if length < dp[i]: flag = i length = dp[i] print(length) print(*array[flag]) 간단간간간단간간단
다이나믹은 점에서 차원이 갈라지거나 점화식이 간단하게 만들어지거나 점화식이 반복적으로 만들어지거나 n = int(input()) lst = list(map(int, input().split())) dp = [1 for i in range(n)] for i in range(n): for j in range(i): if lst[i] > lst[j]: dp[i] = max(dp[i], dp[j] + 1) print(max(dp)) 이 경우는 제일 후자다.
먹지않거나 연속으로 한잔을 먹는 경우이거나 연속으로 두잔을 먹는 경우이거나 import sys input = sys.stdin.readline n = int(input()) wine = [0] for i in range(n): wine.append(int(input())) dp = [[0, 0, 0] for i in range(n + 1)] dp[1] = [0, wine[1], 0] for i in range(2, n + 1): dp[i][0] = max(dp[i - 1]) dp[i][1] = dp[i - 1][0] + wine[i] dp[i][2] = dp[i - 1][1] + wine[i] print(max(dp[n])) 범인은 이 안에 있다
아래 코드는 옛날에 짯던, 실패한 코드입니다. 13일동안 방치해뒀었죠. t = int(input()) for i in range(t): n = int(input()) dp = [[0, 0] for k in range(n)] tmp1 = list(map(int, input().split())) arr = [[x] for x in tmp1] tmp = list(map(int, input().split())) print('n', n) print(tmp1) print(tmp) print('입력완료') for j, num in enumerate(tmp): arr[j].append(num) for j in range(n): if j == 0: if arr[0][0] > arr[0][1]: dp[0] = [arr[0..