class Solution {
public:
bool carPooling(vector<vector<int>>& trips, int capacity) {
vector<int> v(1001, 0);
for (auto trip : trips){
v[trip[1]] += trip[0];
v[trip[2]] -= trip[0];
}
int load = 0;
for (int i = 0; i < v.size(); i++){
if (v[i] == 0) continue;
load += v[i];
if (load > capacity) return false;
}
return true;
}
};
trips의 값을 기준으로 from과 to의 위치에서 각각 승객의 수를 더하고 빼주었다. 후에 값을 저장한 벡터를 앞에서부터 순차적으로 살펴보게 되면 어느 순간 capacity이상의 승객이 타있는 경우를 발견할 수 있으므로 문제를 해결할 수 있다.