9465-s1 성공
This commit is contained in:
37
workbook_7319/silver/9465-s1.py
Normal file
37
workbook_7319/silver/9465-s1.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# 스티커
|
||||
|
||||
import sys
|
||||
|
||||
input = sys.stdin.readline
|
||||
|
||||
def solution():
|
||||
t = int(input().rstrip())
|
||||
|
||||
for _ in range(t):
|
||||
n = int(input().rstrip())
|
||||
lst = [list(map(int, input().rstrip().split())) for _ in range(2)]
|
||||
dp = [[0]*n for _ in range(2)]
|
||||
|
||||
dp[0][0] = lst[0][0]
|
||||
dp[1][0] = lst[1][0]
|
||||
|
||||
for i in range(1, n):
|
||||
dp[0][i] = max(dp[0][i-1], dp[1][i-1]+lst[0][i])
|
||||
dp[1][i] = max(dp[1][i-1], dp[0][i-1]+lst[1][i])
|
||||
|
||||
print(max(dp[0][n-1], dp[1][n-1]))
|
||||
|
||||
|
||||
return
|
||||
|
||||
|
||||
solution()
|
||||
|
||||
"""
|
||||
걸린 시간: 20분
|
||||
|
||||
시간 복잡도: 2*n 테이블을 채워야하기 때문에 O(2n)이다.
|
||||
|
||||
해설: 한 열에서 동시에 선택을 할 수는 없으므로, 각 행마다 경우의 수를 구해가야 하고, 한 행이 생길때마다 선택할 수 있는 경우를 보면 된다.
|
||||
하나의 값을 볼때, 이걸 선택한다면 이전 열의 다른 행에서 와야하고, 선택하지 않는다면 이전 열의 같은 행에서 오면 된다.
|
||||
"""
|
||||
Reference in New Issue
Block a user