[Baekjoon/๐ฅSilverโ ก] 1912: ์ฐ์ํฉ
Intro
์ ๊ทผ ๋ฐฉ๋ฒ๐โโ๏ธ
- ์ฌ๊ธฐ์ ํต์ฌ์ ๐์ฐ์๐์ด๋ค.
- ์ฆ, ์ฐ๋ฆฌ๊ฐ ๊ณ ๋ คํด์ผ ํ ๊ฒ์ ํ์ฌ ์์ ์ด์ ์์ด๋ค.
- ๋จ, ์ฌ๊ธฐ์์ ์ด์ ์๋ ๐์ด์ ์๋ฅผ ํฌํจํด ๊ตฌํ ์ฐ์๋ ์๋ค์ ํฉ๐์ด๋ค.
- ์ฌ๊ธฐ์ dp ์ ์ฉ!!
๊ทธ๋ ๋ค๋ฉด ๊ฐ ๋จ๊ณ์์ ๊ตฌํด์ง ์๋ค์ ํฉ์ ์ดํด๋ณด์.
-
๋ฌธ์ ์ ์์ ์ ๋ ฅ 1์ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด์.
- ๐โโ๏ธ dp[i] = ?
- i-1๋ฒ์งธ dp๊ฐ์ด ์์ด ์๋ ๊ฒฝ์ฐ, dp[i-1] + ํ์ฌ ๊ฐ
- i-1๋ฒ์งธ dp๊ฐ์ด ์์ผ ๊ฒฝ์ฐ, ํ์ฌ๊ฐ
- ๐โโ๏ธ dp[i] = ?
Algoritm๐ฉโ๐ป
- ์ ๋ฐฉ์์ ์ ์ฉํด ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํด๋ณด์.
# 21.01.05
# ์ฐ์ํฉ
import sys
n = int(input())
nums = list(map(int, sys.stdin.readline().rstrip().split()))
dp = [0 for i in range(n)]
dp[0] = nums[0]
for i in range(1, n):
if dp[i-1] < 0:
dp[i] = nums[i]
else:
dp[i] = dp[i-1] + nums[i]
print(max(dp))
๊ทธ๋ผ ์ด๋ง!!
๋!! ~(หโพห~)
๋๊ธ๋จ๊ธฐ๊ธฐ