PassingCars

bird.j·2021년 8월 14일
0

코딜리티

목록 보기
3/5

코딜리티

  • 0은 동쪽을 향해가는 차, 1은 서쪽으로 가는 차
  • 동쪽으로 향해가는 차들이 서쪽으로 가는 차량을 몇 번 마주치게 되는지 총합을 출력
  • 출력할 값이 1000000000보다 크면 -1을 출력



접근 방식

: for문을 통해 값이 0인경우 다음인덱스~끝까지 1의 개수를 세서 더한다. -> O(N^2)으로 task:50, correctness:100, performance:0.

알게된 점

0을 만나면 0의 개수를 더하고,
1을 만나면 합계를 더한다.

ex) A=[0,1,0,1,1]이면,
sum_0 = 1이고 1을 만났을 때, ans = 1
sum_0 = 2이고 1을 만났을 때, ans = 1+2
또 1을 만났을 때, ans = 1+2+2 = 5



코드

def solution(A):
    ans, cnt = 0, 0
    for i in range(len(A)):
        if A[i] == 0:
            cnt += 1
        else:
            ans += cnt
    
    if ans > 1000000000:
        return -1
    return ans

0개의 댓글