기타/Codility

[Easy] PassingCars

백곰곰 2022. 5. 24. 23:04
728x90
반응형

[문제]

동쪽으로 움직이는 차와 서쪽으로 움직이는 차에 대한 정보가 배열로 주어지고 도로에서 서로 지나치는 차의 쌍(pair)을 구하는 문제

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

 

PassingCars coding task - Learn to Code - Codility

Count the number of passing cars on the road.

app.codility.com

[코드]

풀이 : 배열 내 모든 수가 0과 1로 이루어져 있기에 전체 합을 구하고 배열 값이 0인 index 이후의 부분 배열의 합을 구하여 더하는 방식

시간복잡도 : O(N)

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def solution(A):
    # write your code in Python 3.6
    total_sum = sum(A)
    one_count=0
    answer=0
    for i in A :
        if i == 0:
            answer += (total_sum-one_count)
        else :
            one_count+=1
    if answer > 1000000000 :
        return -1
    else :
        return answer
728x90

'기타 > Codility' 카테고리의 다른 글

[Easy] Brackets  (0) 2022.05.25
[Easy] Distinct  (0) 2022.05.25
[Easy] FrogJmp  (0) 2022.05.22
[Easy] CyclicRotation  (0) 2022.05.22
[Easy] ArrListLen  (0) 2022.05.22