1. 문제

N개의 정수로 구성되어 0과 1로 이루어진 비어있지 않은 배열 A는 도로상의 연속적인 차량의 방향을 나타내며 0은 동쪽(P)으로, 1은 서쪽(Q)으로 향하는 차량이다.

이 때 0 <= P < Q < N 인 한 쌍의 차량 (P, Q)가 지나가며 이러한 차량 수를 반환하면 된다.

예를 들어 A배열이 {0, 1, 0, 1, 1}일 경우 (0, 1), (0, 3), (0, 4), (2, 3), (2, 4)의 다섯 쌍의 지나가는 차량 5를 반환하면 된다.

단, 지나가는 차량의 쌍이 1,000,000,000을 초과하면 -1를 반환한다.



2. 풀이

지나가는 차량 (P, Q)를 만들기 위해 동쪽(0)를 기준으로 서쪽(1)으로 지나가는 차량의 수를 차례로 셈하여 더하면 된다.

이를 위해 최초 배열에서 서쪽(1)으로 가는 차량의 수를 셈하여 저장하고 배열을 반복하여 0일 경우 이후 1의 전체수를 더하고 1일 경우엔 전체 1의 수를 하나씩 빼면 된다.



3. 결과

Task Score : 100%

Correctness : 100%

Performance : 100%



4. 코드

PassingCars Code

+ Recent posts