์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Python

[BOJ/Step15] 1912 : ์—ฐ์†ํ•ฉ (Python) - ๋ถ€์—ฐ

NaNaRin๐Ÿ™ƒ 2021. 3. 4. 21:32

www.acmicpc.net/problem/1912

 

1912๋ฒˆ: ์—ฐ์†ํ•ฉ

์ฒซ์งธ ์ค„์— ์ •์ˆ˜ n(1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜๋Š” -1,000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

www.acmicpc.net


๋‚˜๋Š” ์•„์ง DP ๋ฌธ์ œ์— ์ ์‘์„ ๋ชปํ•œ๊ฑฐ๊ฐ™๋‹ค...

๊ณ„์† ํ˜ผ์ž๋Š” ๋ชปํ’€๊ฒ ๋‹ค ใ…œ ์•„๋‹ˆ ํ’€๊ธด ํ‘ธ๋Š”๋ฐ ๊ณ„์† ์‹œ๊ฐ„์ดˆ๊ณผ๋‚˜๊ณ  ๋‚œ๋ฆฌ๋‚œ๋ฆฌ

 

์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์…€๊ฒƒ

์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž๋“ค์„ ๋ฆฌ์ŠคํŠธ num์— ์ €์žฅํ•˜์˜€๋‹ค๊ณ  ํ•  ๋•Œ

num[n] ๊ณผ num[n] + num[n-1] ์„ ๋น„๊ตํ•˜์—ฌ num[n] ์— ์ €์žฅํ•œ๋‹ค

num[n]์ด ๋” ํฌ๋‹ค๋ฉด ์•ž์˜ ์ˆ˜๋“ค์˜ ํ•ฉ ์ค‘ ๊ฐ€์žฅ ํฐ 

num[n] + num[n-1]์ด ๋” ํฌ๋‹ค๋ฉด 

 

์˜ˆ์ œ 1๋ฒˆ์„ ์˜ˆ๋กœ ๋“ค๋ฉด num = [10, -4, 3,   1,   5,   6, -35, 12, 21, -1]

                                             [10,  6, 9, 10, 15, 21, -14, 12, 33, 32]

# 1912.py

n = int(input())
num = [i for i in map(int, input().split())]

for i in range(1, n):
    num[i] = max(num[i], num[i] + num[i-1])

print(max(num))