가오리의 코딩일기
[9465] 스티커 본문
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] += dp[1][0]
dp[1][1] += dp[0][0]
'Python > 백준' 카테고리의 다른 글
[11053] 가장 긴 증가하는 부분 수열 (0) | 2022.05.24 |
---|---|
[2156] 포도주 시식 (0) | 2022.05.24 |
[2193] 이친수 (0) | 2022.05.24 |
[11057] 오르막 수 (0) | 2022.05.23 |
[10844] 쉬운 계단수 (0) | 2022.05.23 |