https://www.acmicpc.net/problem/9465
9465번: 스티커
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의
www.acmicpc.net

대각선끼리 더하는거보다 한번 건너 뛰어서 더하는게 더 커질때를 어떻게 해야할까 고민하게 되었다

아직 dp가 알듯말듯....
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
sticker = []
# 스티커 2*n
for _ in range(2):
sticker.append(list(map(int, sys.stdin.readline().split())))
# 2*1의 경우
if n == 1:
print(*max(sticker))
# n > 1인 경우
else:
# 1,2열의 대각선 합
sticker[1][1] += sticker[0][0]
sticker[0][1] += sticker[1][0]
# 대각선 합 vs i-2의 값중 하나
for i in range(2, n):
sticker[0][i] += max(sticker[1][i-1], sticker[1][i-2])
sticker[1][i] += max(sticker[0][i-1], sticker[0][i-2])
print(max(sticker[0][n-1], sticker[1][n-1]))
'공부 > 알고리즘' 카테고리의 다른 글
| [알고리즘][백준] 11055번 가장 큰 증가하는 부분 수열 - 파이썬(python) 풀이 (0) | 2024.03.30 |
|---|---|
| [알고리즘][백준] 1932번 정수 삼각형 - 파이썬(python) 풀이 (1) | 2024.03.25 |
| [알고리즘][백준] 11057번 오르막 수 - 파이썬(python) 풀이 (1) | 2024.03.18 |
| [알고리즘][백준] 1309번 동물원 - 파이썬(python) 풀이 (0) | 2024.03.16 |
| [알고리즘][백준] 1149번 RGB거리 - 파이썬(python) 풀이 (0) | 2024.03.13 |
