2391. Minimum Amount of Time to Collect Garbage
Minimum Amount of Time to Collect Garbage
#flashcards
**Input:** garbage = ["G","P","GP","GG"], travel = [2,4,3]
**Output:** 21
**Explanation:**
The paper garbage truck:
1. Travels from house 0 to house 1
2. Collects the paper garbage at house 1
3. Travels from house 1 to house 2
4. Collects the paper garbage at house 2
Altogether, it takes 8 minutes to pick up all the paper garbage.
?
class Solution {
public int garbageCollection(String[] garbage, int[] travel) {
int[] prefixTravel = new int[garbage.length];
int mCount = 0;
int pCount = 0;
int gCount = 0;
int mTravel = 0;
int pTravel = 0;
int gTravel = 0;
for (int i = 1; i < garbage.length; i++) {
prefixTravel[i] = prefixTravel[i - 1] + travel[i - 1];
}
for (int i = 0; i < garbage.length; i++) {
for (char c : garbage[i].toCharArray()) {
if (c == 'M') {
mCount++;
mTravel = prefixTravel[i];
} else if (c == 'P') {
pCount++;
pTravel = prefixTravel[i];
} else {
gCount++;
gTravel = prefixTravel[i];
}
}
}
return mCount + gCount + pCount + gTravel + pTravel + mTravel;
}
}