https://programmers.co.kr/learn/courses/30/lessons/42583
코딩테스트 연습 - 다리를 지나는 트럭
트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
int solution(int bridge_length, int weight, vector<int> truck_weights) {
int answer = 0;
int i = 0,nowWeight = 0;
vector<pair<int, int>> v;
while (i < truck_weights.size() || !v.empty()) {
if (!v.empty() && v[0].first <= 0) {
nowWeight -= v[0].second;
v.erase(v.begin());
}
if (i < truck_weights.size() && nowWeight + truck_weights[i] <= weight) {
nowWeight += truck_weights[i];
v.push_back({ bridge_length,truck_weights[i++] });
}
for (int k = 0; k < v.size(); k++) {
v[k].first -= 1;
}
answer++;
}
return answer;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 프로그래머스 "순위 검색" (0) | 2022.05.11 |
---|---|
(c++) 백준 "10158. 개미" (0) | 2022.05.11 |
(c++) 백준 "10163. 색종이" (0) | 2022.05.10 |
(c++) 백준 "2578. 빙고" (0) | 2022.05.10 |
(c++) 프로그래머스 "[3차] 파일명 정렬" (0) | 2022.05.04 |