[BOJ] 9465. ์Šคํ‹ฐ์ปค (๐Ÿฅˆ, DP)

lemythe423ยท2023๋…„ 9์›” 20์ผ
0

BOJ ๋ฌธ์ œํ’€์ด

๋ชฉ๋ก ๋ณด๊ธฐ
56/133
post-thumbnail

๐Ÿ”—

ํ’€์ด

2n ๊ฐœ์˜ ์Šคํ‹ฐ์ปค์— ๋Œ€ํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 10๋งŒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ฃจํŠธํฌ์Šค๋‚˜ ์™„์ „ ํƒ์ƒ‰์€ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™๋‹ค.

๋งŒ์•ฝ ๊ธธ์ด๊ฐ€ 1์ธ ๊ฒฝ์šฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๊ณ„์‚ฐํ•  ๊ฒƒ๋„ ์—†์ด ๊ฐ’ 2๊ฐœ ์ค‘ ํฐ ๊ฐ’์„ ๊ณ ๋ฅด๋ฉด ๋œ๋‹ค.

๋งŒ์•ฝ ๊ธธ์ด๊ฐ€ 2๋ผ๋ฉด, ์„œ๋กœ ๋–ผ์–ด์ง€์ง€ ์•Š๋„๋ก ๋ฐ”๋กœ ์–‘ ์˜†์— ๋ถ™์€ ๊ฐ’์€ ๊ณ ๋ฅผ ์ˆ˜ ์—†๋‹ค. ํŒŒ๋ž€์ƒ‰ ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๋นจ๊ฐ„์ƒ‰ ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ 2๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ๊ธธ์ด๊ฐ€ 3์„ ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค๋ฉด ์กฐ๊ธˆ ๋‹ฌ๋ผ์ง„๋‹ค.

๊ธธ์ด๊ฐ€ 2์ผ ๋•Œ์ฒ˜๋Ÿผ, ๋นจ๊ฐ„์ƒ‰๊ณผ ํŒŒ๋ž€์ƒ‰ ํ™”์‚ดํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ๊ฐ€๋Š” ๊ธธ์€ ๋™์ผํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์ถ”๊ฐ€๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. 30์—์„œ 10์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ 100์œผ๋กœ ์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. 10์„ ๊ฑฐ์น˜๋ฉด 100์˜ ๋ฐ”๋กœ ์˜† ์นธ์ด๋ผ์„œ ๋–ผ์–ด๋‚ผ ์ˆ˜ ์—†์ง€๋งŒ 30์—์„œ ๋ฐ”๋กœ ์˜ค๊ฒŒ ๋˜๋ฉด ์˜† ์นธ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋–ผ์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

๊ธธ์ด๊ฐ€ 4๋ฅผ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ํŠน๋ณ„ํžˆ ์ถ”๊ฐ€๋กœ ๋” ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ถ€๋ถ„์€ ์—†๋‹ค. ๊ธธ์ด๊ฐ€ 3์ผ๋•Œ์™€ ๋™์ผํ•œ ๋ถ€๋ถ„๋งŒ ๊ณ ๋ คํ•˜๋ฉด ๋œ๋‹ค.

# ์Šคํ‹ฐ์ปค

def sol(n, dp):
    if n > 1:
        dp[0][1] += dp[1][0]
        dp[1][1] += dp[0][0]!
        
        if n > 2:
            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])
    
    return max(dp[0][-1], dp[1][-1])
    
for _ in range(int(input())):
    n = int(input())
    dp = [list(map(int, input().split())) for _ in range(2)]
    print(sol(n, dp))
profile
์•„๋ฌด๋ง์ด๋‚˜ํ•˜๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€