ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
๋ฌธ์ ํ์ด
์ด์ ์ ํ์๋ 1912 ์ฐ์ํฉ์์ ํ๋์ ์ซ์๋ฅผ ๋บ ์ ์๋ ์กฐ๊ฑด์ด ์ถ๊ฐ๋ ๋ฌธ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ํ์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ทผํ ์ ์๋ค.
- ์๋ฌด๊ฒ๋ ๋นผ์ง ์๋ ์ฐ์ํฉ์ ๋ฉ๋ชจ ์ด์ ์ด ์ ํ๋ค.
- ๊ตฌํด์ง ์ฐ์ํฉ์์ ์ค๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ ๊ฒฝ์ฐ์ ๋ํ ๊ฐ์ ๋ฉ๋ชจ์ด์ ์ด์ ํ๋ค.
1๋ฒ์ ๊ฒฝ์ฐ๋ ์ฐ์ํฉ ๋ฌธ์ ์์ ๋ค๋ฃจ์๋ค. ๊ทธ๋ผ 2๋ฒ์ ๊ฒฝ์ฐ๋ ์ด๋ค์์ผ๋ก ์ฐพ์ ์ ์์๊น? ์กฐ๊ธ๋ง ์๊ฐํด๋ณด๋ฉด ์ฝ๊ฒ ๋ต์ ์ฐพ์ ์ ์๋ค. ์๋ฅผ ๋ค์ด 4๊ฐ์ ๊ฐ์ด ์๋ค๋ฉด OOXO์ ๊ฐ์ด 2๋ฒ ์ธ๋ฑ์ค์ ๊ฐ์ ์ ์ธํ๊ณ ์ถ๋ค๋ฉด 1๋ฒ์ผ๋ก ๊ตฌํด์ง ๋ฉ๋ชจ์ด์ ์ ์ 1๋ฒ ์ธ๋ฑ์ค์ ํ์ฌ ์ ๋ ฅ๋ ๊ฐ ์ค 3๋ฒ ์ธ๋ฑ์ค์ ๊ฐ์ ๋ํ๊ฒ ๋๋ฉด 2๋ฒ ์ธ๋ฑ์ค๋ฅผ ์ ์ธํ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
์ฝ๋
from sys import stdin
if __name__ == '__main__':
n = int(input())
nums = list(map(int, stdin.readline().split()))
origin, skip = [0] * n, [0] * n
origin[0] = skip[0] = nums[0]
answer = nums[0]
for i in range(1, n):
origin[i] = max(origin[i - 1] + nums[i], nums[i])
skip[i] = max(origin[i - 1], skip[i - 1] + nums[i])
answer = max(answer, max(origin[i], skip[i]))
print(answer)
์ฝ๋์์ origin์ ์ซ์๋ฅผ ์ ๊ฑฐํ์ง ์์ ๋ ์ฐ์ํฉ์ ๋ฉ๋ชจ์ด์ ์ด์ ํ๊ณ , skip์ ์ค๊ฐ์ ํ๋์ ์ซ์๋ฅผ ์ ๊ฑฐํ ๋ ๋ฉ์ด์ด์ ์ด์ ํ๋ค.
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1476 ๋ ์ง ๊ณ์ฐ (0) | 2020.07.11 |
---|---|
๋ฐฑ์ค: 1748 ์ ์ด์ด ์ฐ๊ธฐ 1 (0) | 2020.07.10 |
๋ฐฑ์ค: 1149 RGB ๊ฑฐ๋ฆฌ (0) | 2020.07.08 |
๋ฐฑ์ค: 11054 ๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด (0) | 2020.07.07 |
๋ฐฑ์ค: 11057 ์ค๋ฅด๋ง ์ (0) | 2020.07.06 |