(Python) 백준 9465번 스티커 - class 4

[문제 링크]

9465번 스티커


다이나믹 프로그래밍으로 풀이했다.

import sys

input = sys.stdin.readline

t = int(input())

for _ in range(t):
    n = int(input())
    tb = []
    dp = [[0] * n for _ in range(2)] # dp 테이블

    # 그림 정보
    for _ in range(2):
        tb.append(list(map(int, input().split())))

    # dp 테이블 첫 열 처리
    dp[0][0] = tb[0][0]
    dp[1][0] = tb[1][0]

    # 다이나믹 프로그래밍 
    for i in range(1, n):
        dp[0][i] = max(tb[0][i] + dp[1][i - 1], dp[0][i - 1])
        dp[1][i] = max(tb[1][i] + dp[0][i - 1], dp[1][i - 1])

    print(max(dp[0][n - 1], dp[1][n - 1]))

© 2021. By Backtony