PassingCars
Count the number of passing cars on the road.
Task Score
100%
Correctness
100%
Performance
100%
자동차가 지나갈 때마다 짝을짓는데 (0인경우, 1인경우) 이렇게 짝을 짓는다. 그런데 앞의 0인 경우보다 앞에 등장한 차는 짝을 짓지 않는다.
For example, consider array A such that:
A[0] = 0 A[1] = 1 A[2] = 0 A[3] = 1 A[4] = 1
We have five pairs of passing cars: (0, 1), (0, 3), (0, 4), (2, 3), (2, 4).
그래서 그냥 하나씩 짝을 지어줄 필요 없이 count하는 식으로 했다.
0이 한번 등장하면 다음 0이 등장할 때까지 1씩 더해주고, 0이 한 번 더 등장하면 다음 0이 나올 때까지 2씩 더해주고, 그다음은 3씩, 그다음은 4씩 더해주는 식이다.
그리고 result가 범위를 이탈하면 에러상황으로 -1을 반환하도록 했다.
x
// you can also use imports, for example:
// import java.util.*;
// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
public int solution(int[] A) {
int result = 0;
int sum = 0;
for (int i = 0; i < A.length; i++) {
if (A[i] == 0)
sum++;
else
result += sum;
}
if (result > 1000000000 || result < 0) return -1;
return result;
}
}
'공부 > algorithm' 카테고리의 다른 글
[codility] MinAvgTwoSlice (0) | 2018.05.24 |
---|---|
[codility] GenomicRangeQuery (0) | 2018.05.24 |
[codility] CountDiv (3) | 2018.05.23 |
[codility] MaxCounters (0) | 2018.05.23 |
[codility] PermCheck (0) | 2018.05.23 |
댓글