๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

[๋ฐฑ์ค€] [Python] 1912๋ฒˆ_์—ฐ์†ํ•ฉ_๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Dbswnstjd 2022. 9. 16. 19:45

๋ฌธ์ œ

https://www.acmicpc.net/problem/1912

 

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

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

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 1912๋ฒˆ ๋ฌธ์ œ - ์—ฐ์†ํ•ฉ
n = int(input())
arr =list(map(int, input().split()))

d = [0]*n
d[0] = arr[0]
for i in range(1, n):
    d[i] = max(arr[i], d[i-1] + arr[i])

print(max(d))

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด ์ˆœ์„œ๋Œ€๋กœ ํ•ฉํ•˜์—ฌ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

์ด ๋ฌธ์ œ์—์„œ๋Š” ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ ํ™”์‹์„ ์ฐพ์œผ๋ ค๊ณ  ์• ์ป์ง€๋งŒ ์ž˜ ์ƒ๊ฐ์ด ๋‚˜์ง€ ์•Š์•˜๋‹ค.

์ผ๋‹จ ๋จผ์ € ๋‚ด๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์€ ์ฒ˜์Œ ๋ฐฐ์—ด ๋ถ€ํ„ฐ ์ˆœ์ฐจ๋Œ€๋กœ ๋”ํ•˜์—ฌ ๋ชจ๋“  ๊ฐ’์„ d์— ์ €์žฅํ•˜๊ณ  max๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๊ตฌํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•˜์˜€๋‹ค. 

์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณธ ๊ฒฐ๊ณผ ๋ชจ๋“  ๊ฐ’์„ ๋น„๊ตํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.