from sys import stdin
T = int(stdin.readline()) # testcase 개수
for _ in range(T):
N = int(stdin.readline()) # 열 개수
dp = [] # 스티커 점수 2차원 배열
for _ in range(2):
dp.append(list(map(int, stdin.readline().split())))
# 스티커 길이가 1
if N==1:
print(max(dp[0][0],dp[1][0]))
continue
# 스티커 길이가 2 이상
# 2인 경우 max(dp[0][1], dp[1][1])
dp[0][1] += dp[1][0]
dp[1][1] += dp[0][0]
for i in range(2, N):
dp[0][i] += max(dp[1][i-1], dp[1][i-2])
dp[1][i] += max(dp[0][i-1], dp[0][i-2])
print(max(dp[0][-1], dp[1][-1]))
풀이
index error 방지를 위해 스티커 길이가 1일 때, 첫 열의 값 중 최대값
스티커 길이가 2일 때, for문을 돌지 않음
아래는 스티커 길이가 3 이상일 때부터 적용되는 방식
결과