ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

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

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

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ํ†ตํ•ด, ํ•œ๋ฒˆ์˜ ๊ณ„์‚ฐ์œผ๋กœ ์—ฐ์†ํ•ฉ ์ค‘์˜ ์ตœ๋Œ€ ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ํ˜„์žฌ ์ˆ˜์—ด ๊ฐ’์ด ์•ž์˜ ๊ฐ’๊ณผ ๋”ํ•œ ๊ฒƒ ๋ณด๋‹ค ๊ฐ’์ด ํฌ๋ฉด ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ์•„๋‹ ๊ฒฝ์šฐ, ์•ž์˜ ํ•ฉ์‚ฐ ๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค. ๋ง๋กœ๋Š” ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋˜์ง€๋งŒ ๋ฌธ์ œ ์˜ˆ์‹œ์—์„œ ์ตœ๋Œ€ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์„ ๋ณด๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Origin 10 -4 3 1 5 6 -35 12 21
Round 1 10 6              
Round 2 10 6 9            
Round 3 10 6 9 10          
Round 4 10 6 9 10 15        
Round 5 10 6 9 10 15 21      
Round 6 10 6 9 10 15 21 -14    
Round 7 10 6 9 10 15 21 -14 12  
Round 8 10 6 9 10 15 21 -14 12 33
  • ๋ˆ„์ ๋œ ๊ฐ’์ด ํ˜„์žฌ ์ˆ˜์—ด ๊ฐ’(์ธ๋ฑ์Šค) ๋ณด๋‹ค ํฌ๋‹ค๋ฉด ๋ˆ„์ ๋œ ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค. (ํŒŒ๋ž€์ƒ‰)
  • ๋ˆ„์ ๋œ ๊ฐ’์ด ํ˜„์žฌ ์ˆ˜์—ด ๊ฐ’ ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ํ˜„์žฌ ๊ฐ’์„ ์œ ์ง€ํ•œ๋‹ค (๋นจ๊ฐ„์ƒ‰)
  • ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์„ ํ†ตํ•ด ๋” ์ด์ƒ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋ถ€๋ถ„ํ•ฉ๊ณผ ๊ทธ ์ดํ›„์˜ ๋ถ€๋ถ„ํ•ฉ์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin

if __name__ == '__main__':
    n = int(stdin.readline())
    nums = list(map(int, stdin.readline().split()))

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

    print(max(nums))
728x90
๋ฐ˜์‘ํ˜•
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€