https://app.codility.com/programmers/lessons/5-prefix_sums/
Task Score
100%
Correctness
100%
Performance
100%
시간복잡도
O(N)
def solution(A):
east = []
for i in range(len(A)):
if A[i] == 0:
east.append(i)
if len(east) == 0:
return 0
prefix_sum = []
for i in range(len(east)-1):
prefix_sum.append(east[i+1]-east[i]-1)
if east[-1] != len(A):
prefix_sum.append(len(A)-1-east[-1])
cnt = 0
for i in range(len(prefix_sum)):
cnt += prefix_sum[i]*(i+1)
if cnt > 10 ** 9:
return -1
return cnt
728x90
반응형
'Problem Solving > Codility' 카테고리의 다른 글
[Python] 6.2. MaxProductOfThree (0) | 2021.03.25 |
---|---|
[Python] 6.1. Distinct (0) | 2021.03.25 |
[Python] 5.3. MinAvgTwoSlice (0) | 2021.03.18 |
[Python] 5.2. GenomicRangeQuery (0) | 2021.03.16 |
[Python] 5.1. CountDiv (0) | 2021.03.15 |
댓글