RUBY

[백준] 스티커 본문

PS/BOJ

[백준] 스티커

RUBY_루비 2020. 10. 5. 23:59

출처::  www.acmicpc.net/problem/9465

분류:: dp

 

1. 문제 이해 및 해결과정

- 첫번째 열은
 1) 자기자신
- 두번째 열은
 1) 자기자신
 2) 자기자신 반대행 + 자기 자신
- 세번째 열 부터
 1) 자기자신의 반대행 + 자기자신
 2) 앞에 한줄 띄고 자기자신 행 + 자기자신
 3) 앞에 한줄 띄고 자기자신의 반대행 + 자기자신

 

2. 풀이방법

  1. [python] dp

#스티커
#https://www.acmicpc.net/problem/9465
import sys
sys.stdin = open("input.txt","r")
input=sys.stdin.readline
t=int(input())
for _ in range(t):
    n=int(input())
    board=[list(map(int,input().split())) for _ in range(2)] #입력받는 스티커점수
    dp=[[0]*n for _ in range(2)]
    dp[0][0],dp[1][0]=board[0][0],board[1][0]
    if n>=2:
        dp[0][1]=max(dp[1][0]+board[0][1],board[0][1])
        dp[1][1]=max(dp[0][0]+board[1][1],board[1][1])
    if n>=3:
        for i in range(2,n):
            dp[0][i]=max(dp[1][i-1]+board[0][i],dp[0][i-2]+board[0][i],dp[1][i-2]+board[0][i])
            dp[1][i] = max(dp[0][i-1] + board[1][i], dp[0][i-2] + board[1][i], dp[1][i - 2] + board[1][i])


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

 

3. 오답원인

 

4. 알게된 점

 

'PS > BOJ' 카테고리의 다른 글

[백준] 암호만들기  (0) 2020.10.08
[백준] 소수&팰린드롬  (0) 2020.10.07
[백준] 날짜 계산  (0) 2020.10.05
[백준] 포도주 시식  (0) 2020.10.05
[백준] 좌표 정렬하기  (0) 2020.10.05
Comments