[Baekjoon/๐ŸฅˆSilverโ…ก] 1912: ์—ฐ์†ํ•ฉ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

Intro

๋ฌธ์ œ์‚ฌ์ง„

์ ‘๊ทผ ๋ฐฉ๋ฒ•๐Ÿ™‹โ€โ™€๏ธ

  • ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ๐Ÿ‘์—ฐ์†๐Ÿ‘์ด๋‹ค.
    • ์ฆ‰, ์šฐ๋ฆฌ๊ฐ€ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ฒƒ์€ ํ˜„์žฌ ์ˆ˜์™€ ์ด์ „ ์ˆ˜์ด๋‹ค.
    • ๋‹จ, ์—ฌ๊ธฐ์„œ์˜ ์ด์ „ ์ˆ˜๋Š” ๐Ÿ‘์ด์ „ ์ˆ˜๋ฅผ ํฌํ•จํ•ด ๊ตฌํ•œ ์—ฐ์†๋œ ์ˆ˜๋“ค์˜ ํ•ฉ๐Ÿ‘์ด๋‹ค.
      • ์—ฌ๊ธฐ์„œ dp ์ ์šฉ!!


๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ ๋‹จ๊ณ„์—์„œ ๊ตฌํ•ด์ง„ ์ˆ˜๋“ค์˜ ํ•ฉ์„ ์‚ดํŽด๋ณด์ž.


  • ๋ฌธ์ œ์˜ ์˜ˆ์ œ ์ž…๋ ฅ 1์˜ ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด์ž.

    ๊ณผ์ •

    • ๐Ÿ™‹โ€โ™€๏ธ dp[i] = ?
      • i-1๋ฒˆ์งธ dp๊ฐ’์ด ์Œ์ด ์•„๋‹ ๊ฒฝ์šฐ, dp[i-1] + ํ˜„์žฌ ๊ฐ’
      • i-1๋ฒˆ์งธ dp๊ฐ’์ด ์Œ์ผ ๊ฒฝ์šฐ, ํ˜„์žฌ๊ฐ’

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))

์ œ์ถœ๊ฒฐ๊ณผ


๊ทธ๋Ÿผ ์ด๋งŒ!!

๋!! ~(ห˜โ–พห˜~)

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ