문제 풀이/Baekjoon Online Judge
[python3] 1912번 연속합
[잉간]
2018. 3. 16. 23:27
처음에는 brute force 방법을 사용해서 문제를 풀어보려 하였다.
하지만 시간 초과가 생겨 다른 방법을 찾아야 했다.
그러던 중 위키피디아에서 이 알고리즘을 찾게 되었다.
Kadane's algorithm
n = int(input()) sequencestr = input().split() sequence = list(range(n)) for repeat in range(0, n): sequence[repeat] = int(sequencestr[repeat]) class cs: def msa(self, num, n): sm = num[0] result = num[0] for repeat in range(1, n): sm = max(sm + num[repeat], num[repeat]) result = max(sm, result) return result mx = cs() print(mx.msa(sequence, n))