티스토리 뷰
처음에는 brute force 방법을 사용해서 문제를 풀어보려 하였다.
하지만 시간 초과가 생겨 다른 방법을 찾아야 했다.
그러던 중 위키피디아에서 이 알고리즘을 찾게 되었다.
Kadane's algorithm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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)) |
'문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[python3] 10172번 개 (0) | 2018.03.17 |
---|---|
[python3] 2839번 설탕 배달 (0) | 2018.03.17 |
[python3] 2292번 벌집 (0) | 2018.03.15 |
[python3] 1110번 더하기 사이클 (0) | 2018.03.15 |
[python3] 2163번 초콜릿 자르기 (0) | 2018.03.14 |