[๋ฐฑ์ค€/python] 9465๋ฒˆ : ์Šคํ‹ฐ์ปค

2021. 8. 28. 22:24

๋ฌธ์ œ

์ƒ๊ทผ์ด์˜ ์—ฌ๋™์ƒ ์ƒ๋ƒฅ์ด๋Š” ๋ฌธ๋ฐฉ๊ตฌ์—์„œ ์Šคํ‹ฐ์ปค 2n๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ๋‹ค. ์Šคํ‹ฐ์ปค๋Š” ๊ทธ๋ฆผ (a)์™€ ๊ฐ™์ด 2ํ–‰ n์—ด๋กœ ๋ฐฐ์น˜๋˜์–ด ์žˆ๋‹ค. ์ƒ๋ƒฅ์ด๋Š” ์Šคํ‹ฐ์ปค๋ฅผ ์ด์šฉํ•ด ์ฑ…์ƒ์„ ๊พธ๋ฏธ๋ ค๊ณ  ํ•œ๋‹ค.

์ƒ๋ƒฅ์ด๊ฐ€ ๊ตฌ๋งคํ•œ ์Šคํ‹ฐ์ปค์˜ ํ’ˆ์งˆ์€ ๋งค์šฐ ์ข‹์ง€ ์•Š๋‹ค. ์Šคํ‹ฐ์ปค ํ•œ ์žฅ์„ ๋–ผ๋ฉด, ๊ทธ ์Šคํ‹ฐ์ปค์™€ ๋ณ€์„ ๊ณต์œ ํ•˜๋Š” ์Šคํ‹ฐ์ปค๋Š” ๋ชจ๋‘ ์ฐข์–ด์ ธ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ๋—€ ์Šคํ‹ฐ์ปค์˜ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์œ„, ์•„๋ž˜์— ์žˆ๋Š” ์Šคํ‹ฐ์ปค๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค.

๋ชจ๋“  ์Šคํ‹ฐ์ปค๋ฅผ ๋ถ™์ผ ์ˆ˜ ์—†๊ฒŒ๋œ ์ƒ๋ƒฅ์ด๋Š” ๊ฐ ์Šคํ‹ฐ์ปค์— ์ ์ˆ˜๋ฅผ ๋งค๊ธฐ๊ณ , ์ ์ˆ˜์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๊ฒŒ ์Šคํ‹ฐ์ปค๋ฅผ ๋–ผ์–ด๋‚ด๋ ค๊ณ  ํ•œ๋‹ค. ๋จผ์ €, ๊ทธ๋ฆผ (b)์™€ ๊ฐ™์ด ๊ฐ ์Šคํ‹ฐ์ปค์— ์ ์ˆ˜๋ฅผ ๋งค๊ฒผ๋‹ค. ์ƒ๋ƒฅ์ด๊ฐ€ ๋—„ ์ˆ˜ ์žˆ๋Š” ์Šคํ‹ฐ์ปค์˜ ์ ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ฆ‰, 2n๊ฐœ์˜ ์Šคํ‹ฐ์ปค ์ค‘์—์„œ ์ ์ˆ˜์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋ฉด์„œ ์„œ๋กœ ๋ณ€์„ ๊ณต์œ  ํ•˜์ง€ ์•Š๋Š” ์Šคํ‹ฐ์ปค ์ง‘ํ•ฉ์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

์œ„์˜ ๊ทธ๋ฆผ์˜ ๊ฒฝ์šฐ์— ์ ์ˆ˜๊ฐ€ 50, 50, 100, 60์ธ ์Šคํ‹ฐ์ปค๋ฅผ ๊ณ ๋ฅด๋ฉด, ์ ์ˆ˜๋Š” 260์ด ๋˜๊ณ  ์ด ๊ฒƒ์ด ์ตœ๋Œ€ ์ ์ˆ˜์ด๋‹ค. ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ๋‘ ์Šคํ‹ฐ์ปค (100๊ณผ 70)์€ ๋ณ€์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋™์‹œ์— ๋—„ ์ˆ˜ ์—†๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” n (1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ๋‘ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ •์ˆ˜๋Š” ๊ทธ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ์Šคํ‹ฐ์ปค์˜ ์ ์ˆ˜์ด๋‹ค. ์—ฐ์†ํ•˜๋Š” ๋‘ ์ •์ˆ˜ ์‚ฌ์ด์—๋Š” ๋นˆ ์นธ์ด ํ•˜๋‚˜ ์žˆ๋‹ค. ์ ์ˆ˜๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. 

 

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋งˆ๋‹ค, 2n๊ฐœ์˜ ์Šคํ‹ฐ์ปค ์ค‘์—์„œ ๋‘ ๋ณ€์„ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š” ์Šคํ‹ฐ์ปค ์ ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ •๋‹ต

import sys
input = sys.stdin.readline

T = int(input())

for _ in range(T):
    n = int(input())
    stickers = [list(map(int, input().split())) for _ in range(2)]

    if n == 1:
        print(max(stickers[0][0], stickers[1][0]))

    else:
        stickers[0][1] += stickers[1][0]
        stickers[1][1] += stickers[0][0]
        for i in range(2, n):
            stickers[0][i] += max(stickers[1][i-1], stickers[1][i-2])
            stickers[1][i] += max(stickers[0][i-1], stickers[0][i-2])

        print(max(stickers[0][n-1], stickers[1][n-1]))

n์ด 1์ผ ๊ฒฝ์šฐ, ์Šคํ‹ฐ์ปค 2๊ฐœ๊ฐ€ ์ธ์ ‘ํ•ด ์žˆ์œผ๋ฏ€๋กœ ๋‘˜ ์ค‘ ๋†’์€ ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

n์ด 2์ผ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์€ ๋ชจ์–‘์œผ๋กœ, ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค 1์˜ ์ž…์žฅ์—์„œ ๋ดค์„ ๋•Œ

๋นจ๊ฐ„ ์ฒดํฌ๋ฅผ ๋”ํ•œ ๊ฐ’ ๋˜๋Š” ํŒŒ๋ž€ ์ฒดํฌ๋ฅผ ๋”ํ•œ ๊ฐ’ ์ค‘ ๋†’์€ ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

n์ด 3์ผ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์€ ๋ชจ์–‘์œผ๋กœ, ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค 2์˜ ์ž…์žฅ์—์„œ ๋ดค์„ ๋•Œ

๋นจ๊ฐ„ ํ‘œ์‹œ ๋‘ ๊ฐœ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋”ํ•œ ๊ฐ’ ๋˜๋Š” ํŒŒ๋ž€ ํ‘œ์‹œ ๋‘ ๊ฐœ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋”ํ•œ ๊ฐ’ ์ค‘ ๋†’์€ ์ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ด ๋•Œ ์ธ๋ฑ์Šค 1์— ์žˆ๋Š” ๊ฐ’์€ n์ด 2์ผ ๊ฒฝ์šฐ์˜ ๊ณผ์ •์„ ํ•œ ์ƒํƒœ์˜ ๊ฐ’์ด ๋“ค์–ด์žˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์ด n์ด 2 ์ด์ƒ์ผ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค n์€ 

๋‹ค๋ฅธ ์ค„์˜ ์ธ๋ฑ์Šค n-1 ๋˜๋Š” n-2์˜ ๊ฐ’ ์ค‘ ํฐ ๊ฐ’์ด ํ›„๋ณด๊ฐ€ ๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

728x90

BELATED ARTICLES

more