코딩은 쉬운데 지문분석이 빡세다
(문제는 안나와있지만) 2차선 도로에서 차들이 운행하면서 차대차 스쳐 지나가는 횟수를 구하는 문제
0이든 1이든 상관 없지만 0 기준으로
모든 0이 마지막 인덱스로 가면서 만나는 모든 1의 갯수를 더하면 되는데
그냥 이중포문으로 풀면 당연히 타임아웃이니까 포문 한번에 풀어내는 방식으로 풀으라는게 포인트
0은 오른쪽(마지막인덱스 방향)으로 가는 자동차의 댓수이고
1은 반대편으로 가는 차니까,
정답을 구하기 위해서는 1을 만날때마다 자동차 댓수만큼 더해주면 된다
class Solution {
public int solution(int[] A) {
int count = 0;
int sum = 0;
for(int i=0 ; i<A.length ; i++) {
if(A[i] == 0) {
sum++;
}
else {
count += sum;
}
if(count > 1000000000 || count <0) {
return -1;
}
}
return count;
}
}