목록Python/백준 (129)
가오리의 코딩일기
n = int(input()) number = list(map(int,input().split())) result = [0]*n result[0]=number[0] for i in range(1, n): for j in range(i): if number[i] > number[j]: result[i] = max(result[i], result[j]+number[i]) else: result[i] = max(result[i], number[i]) print(max(result))
n = int(input()) data = list(map(int, input().split())) dp = [1]*n for i in range(n): for j in range(i): if data[j] number[j] and result[j] > result[i]: result[i] = result[j] result[i]+=1 print(max(result))
n = int(input()) dp = [] for i in range(n): dp.append(int(input())) list0 = [0]*n list0[0] = dp[0] if n > 1: list0[1] = dp[0]+dp[1] if n > 2: list0[2] = max(dp[2]+dp[1], dp[2]+dp[0], list0[1]) for i in range(3, n): list0[i] = max(list0[i-1], list0[i-3]+dp[i-1]+dp[i], list0[i-2]+dp[i]) print(list0[n-1]) n = int(input()) array = [0] * 10000 for i in range(n): array[i] = int(input()) result = [0]*1..
T = int(input()) for i in range(T): dp = [] n = int(input()) for j in range(2): dp.append(list(map(int, input().split()))) for k in range(1, n): if k == 1: dp[0][k] += dp[1][k-1] dp[1][k] += dp[0][k-1] else: dp[0][k] += max(dp[1][k-1], dp[1][k-2]) dp[1][k] += max(dp[0][k-1], dp[0][k-2]) print(max(dp[0][n-1], dp[1][n-1])) POINT - 뗀 스티커 기준으로 왼쪽, 오른쪽, 위, 아래 스티커 사용 불가 - 점수의 합이 '최대'일 때를 구한다 dp[0][1] ..
n = int(input()) dp = [0, 1, 1] for i in range(3, 91): dp.append(dp[i-2]+dp[i-1]) print(dp[n]) n 1 2 3 4 5 f(n) 1 1 2 3 5 - 1 10 100, 101 1000, 1010, 1001 10000, 10101, 10100. 10010, 10001 dp[n] = dp[n-1]+dp[n-2]
n = int(input()) MOD = 10007 dp = [[0 for _ in range(10)] for _ in range(n+1)] for i in range(10): dp[1][i] = 1 for i in range(2, n+1): for j in range(10): for k in range(j, 10): dp[i][j] += dp[i-1][k] print(sum(dp[n]) % MOD)
n = int(input()) dp = [[0]*10 for _ in range(n+1)] for i in range(1, 10): dp[1][i] = 1 for i in range(2, n+1): for j in range(10): if j == 0: dp[i][j] = dp[i-1][1] elif j == 9: dp[i][j] = dp[i-1][8] else: dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1] print(sum(dp[n]) % 1000000000) n f(n) 1 9 1,2,3,4,5,6,7,8,9 2 17 12,23,34,45,56,67,78,89, 10,21,32,43,54,65,76,87,98 dp[자리수][앞의 숫자] = 경우의 수 dp[2][0] = 0 (..
dp = [0] *11 dp[1]=1 dp[2]=2 dp[3]=4 for i in range(4,11): dp[i] = dp[i-1]+dp[i-2]+dp[i-3] T = int(input()) for i in range(T): n = int(input()) print(dp[n]) T 1 2 3 4 5 6 f(T) 1 2 4 7 13 24 f(T) = f(T-1)+f(T-2)+f(T-3)
# 방법1 n = int(input()) dp = [0, 1, 3] for i in range(3, n+1): dp.append((dp[i-1])+((dp[i-2]*2))) print(dp[n] % 10007) # 방법2 n = int(input()) arr = [0 for _ in range(n+1)] if n == 1: print(n) else: arr[1] = 1 arr[2] = 3 for i in range(3, n+1): arr[i] = arr[i-1]+arr[i-2]*2 print(arr[n] % 10007)