ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
๋ฌธ์ ํ์ด
์คํฐ์ปค๋ฅผ ์ ๊ฑฐ ํ ๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ด ์ ์ฉ๋๋ค. ๋ณ์ ์ธ์ ํ๊ณ ์์ผ๋ฉด ๋์์ ์คํฐ์ปค๊ฐ ์ ๊ฑฐ๋์ด ์ ํํ ์ ์์ผ๋ฏ๋ก ๋๊ฐ์ ์ผ๋ก ์ ํํ์ฌ์ผ ํ๋ค. ์คํฐ์ปค์ ์ ์๊ฐ ์ต๋๊ฐ ๋๊ธฐ ์ํด์๋ ๋๊ฐ์ ์ ์ ์๋ฅผ ํฉํ์ฌ ์ต๋ ๊ฐ์ ์ฐพ์ผ๋ฉด ๋๋ค.
์ฒซ ๋ฒ์งธ ํ์์ ์์ํ๊ฒ ๋๋ค๋ฉด `โโโโ` ์ ๊ฐ์ด ์คํฐ์ปค๋ฅผ ์ ํํ๊ฒ ๋๋ค. ์ด์ ๋ฐ๋๋ก ๋ ๋ฒ์งธ ํ์ ๊ฒฝ์ฐ `โโโโ` ์๊ฐ์ด ์คํฐ์ปค๋ฅผ ์ ํํ๊ฒ ๋๋ค. ์ฒซ ๋ฒ์งธ ์ด๊ณผ ๋ ๋ฒ์งธ ์ด์๋จ์ํ๋๊ฐ์ ์ํฉ์๊ตฌํ๋ฉด๋์ง๋ง
๋จ์ํ ๋๊ฐ์ ์ ํฉ์ ๊ตฌํ๋ฉด ๋์ง๋ง, ์ธ ๋ฒ์งธ ์ด๋ถํฐ๋ ๋ฐ๋ก ์์ ๋๊ฐ์ ๊ณผ ๊ทธ๋ค์ ๋๊ฐ์ ์ ๋น๊ตํ์ฌ ํฐ ๊ฐ์ ์ ํํ๋๋ก ํ์ฌ์ผ ํ๋ค.
์ฝ๋
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]))
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1932 ์ ์ ์ผ๊ฐํ (0) | 2020.07.04 |
---|---|
๋ฐฑ์ค: 2156 ํฌ๋์ฃผ ์์ (0) | 2020.07.04 |
๋ฐฑ์ค: 2309 ์ผ๊ณฑ ๋์์ด (0) | 2020.07.03 |
๋ฐฑ์ค: 1309 ๋๋ฌผ์ (0) | 2020.07.02 |
๋ฐฑ์ค: 15988 1, 2, 3 ๋ํ๊ธฐ 3 (0) | 2020.07.02 |