[BaekJoon] 1912번 : 연속합

Updated:

1912번 : 연속합


처음 λ¬Έμ œμ— μ ‘κ·Ό ν•  땐 prefix_sum 을 μ΄μš©ν•˜μ—¬ ꡬ간합을 κ΅¬ν•œ λ’€ λͺ¨λ“  λΆ€λΆ„ ν•© 쀑 μ΅œλŒ€κ°’μ„ λ°˜ν™˜ν–ˆλ‹€.

μ—­μ‹œλ‚˜ μ‹œκ°„μ΄ˆκ³Όκ°€ λ°œμƒ ν•΄ λͺ¨λ“  λΆ€λΆ„ 합을 κ΅¬ν•˜λŠ” λ°©λ²•μ˜ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 쀄이도둝 ν•΄λ΄€λ‹€.

ν•˜μ§€λ§Œ 또 μ‹œκ°„μ΄ˆκ³Ό.. 정닡은 μ•„μ£Ό κ°„λ‹¨ν•œ DP μ˜€λ‹€..

정말 DP λ¬Έμ œκ°€ μ„Έμƒμ—μ„œ 제일 μ–΄λ ΅λ‹€..

이 λ¬Έμ œμ—μ„œλŠ” μ—°μ†ν•΄μ„œ 더할지 μƒˆλ‘œ μ‹œμž‘ν• μ§€λ₯Ό μ •ν•΄ 계산을 ν•΄μ€€λ‹€.


def solution():
	dp = [data[0]]
	for i in range(n - 1):
		dp.append(max(dp[i] + data[i + 1], data[i + 1]))
    
	return max(dp)


if __name__ == "__main__":
	n = int(input())
	data = list(map(int, input().split()))

	print(solution())



Categories:

Updated:

Leave a comment