티스토리 뷰


처음에는 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
댓글
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total
Today
Yesterday