ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

9465๋ฒˆ: ์Šคํ‹ฐ์ปค

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

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 

 ์Šคํ‹ฐ์ปค๋ฅผ ์ œ๊ฑฐ ํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์ด ์ ์šฉ๋œ๋‹ค. ๋ณ€์„ ์ธ์ ‘ํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋™์‹œ์— ์Šคํ‹ฐ์ปค๊ฐ€ ์ œ๊ฑฐ๋˜์–ด ์„ ํƒํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋Œ€๊ฐ์„ ์œผ๋กœ ์„ ํƒํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์Šคํ‹ฐ์ปค์˜ ์ ์ˆ˜๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋Œ€๊ฐ์„ ์˜ ์ ์ˆ˜๋ฅผ ํ•ฉํ•˜์—ฌ ์ตœ๋Œ€ ๊ฐ’์„ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

 

 ์ฒซ ๋ฒˆ์งธ ํ–‰์—์„œ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด `โ†˜โ†—โ†˜โ†—` ์™€ ๊ฐ™์ด ์Šคํ‹ฐ์ปค๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค. ์ด์™€ ๋ฐ˜๋Œ€๋กœ ๋‘ ๋ฒˆ์งธ ํ–‰์˜ ๊ฒฝ์šฐ `โ†—โ†˜โ†—โ†˜` ์™€๊ฐ™์ด ์Šคํ‹ฐ์ปค๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์—ด๊ณผ ๋‘ ๋ฒˆ์งธ ์—ด์€๋‹จ์ˆœํžˆ๋Œ€๊ฐ์„ ์˜ํ•ฉ์„๊ตฌํ•˜๋ฉด๋˜์ง€๋งŒ

๋‹จ์ˆœํžˆ ๋Œ€๊ฐ์„ ์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด ๋˜์ง€๋งŒ, ์„ธ ๋ฒˆ์งธ ์—ด๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์˜†์˜ ๋Œ€๊ฐ์„ ๊ณผ ๊ทธ๋‹ค์Œ ๋Œ€๊ฐ์„ ์„ ๋น„๊ตํ•˜์—ฌ ํฐ ๊ฐ’์„ ์„ ํƒํ•˜๋„๋ก ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin


if __name__ == '__main__':
    UP, DOWN = 0, 1
    T = int(input())
    for _ in range(T):
        n = int(stdin.readline())
        sticker = \
            [list(map(int, stdin.readline().split())) for _ in range(2)]

        # 1ํ–‰์„ ๊ธฐ์ค€์œผ๋กœ ์‹œ์ž‘ํ•  ๊ฒฝ์šฐ
        sticker[DOWN][1] += sticker[UP][0]
        # 2ํ–‰์„ ๊ธฐ์ค€์œผ๋กœ ์‹œ์ž‘ํ•  ๊ฒฝ์šฐ
        sticker[UP][1] += sticker[DOWN][0]

        for i in range(2, n):
            sticker[UP][i] += max(sticker[DOWN][i - 1], sticker[DOWN][i - 2])
            sticker[DOWN][i] += max(sticker[UP][i - 1], sticker[UP][i - 2])
        print(max(sticker[UP][n - 1], sticker[DOWN][n - 1]))
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€