728x90
https://www.acmicpc.net/problem/9465
9465번: 스티커
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의
www.acmicpc.net
아이디어
할당된 저장변수에 계속해서 최대값을 저장해나가면서 마지막에 가장 큰 값을 추출
저장하는 것은 다른 행이므로 비교를 하면서 더해나간다.
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
dp = []
n = int(input())
dp.append(list(map(int, input().split())))
dp.append(list(map(int, input().split())))
if n == 1:
print(max(map(max, dp)))
continue
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(map(max, dp)))
완성
728x90
'알고리즘' 카테고리의 다른 글
[백준] 12865번: 평범한 배낭 - python (0) | 2024.04.11 |
---|---|
[백준] 11660번: 구간 합 구하기 5 - python (0) | 2024.04.11 |
[백준] 1991번: 트리 순회 - python (0) | 2024.04.09 |
[백준] 11725번: 트리의 부모 찾기 - python (0) | 2024.04.09 |
[백준] 15666번: N과 M (12) - python (0) | 2024.04.09 |