algorithm/python

codility/lesson5/prefix sums/passingCars

아르르르를를르 2022. 2. 14. 22:37

https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/

 

코딜리티는

(1) 시간제한이 있어 늦장부리지 않고 풀 수 있어 좋다.

(2) 테스트케이스도 정확도, 성능측정으로 분리되어 있으며

(3) 화면녹화도 제공하고

(4) 내 소스 시간복잡도도 계산해 주고

(5) 문제도 영어라 가끔 영어문제를 내는 큰 회사들 대비하기 좋다.

 

나는 성능이 구린 풀이를 잘 하기 때문에 코딜리티로 점검해 보았다.

 

곧이곧대로 풀지말고 그 안의 룰을 찾아내자

def solution(A):
    west_sum = 0
    len_A = len(A)
    cnt_one = sum(A)

    for i in range(len_A):
        if A[i] == 0:
            west_sum += cnt_one
            if west_sum > 1000000000:
                return -1
        else:
            cnt_one -= 1

    return west_sum