안녕하십니까. Eun🦆입니다.
풀이법 입니다.
#include <string>
#include <vector>
using namespace std;
int solution(int bridge_length, int weight, vector<int> truck_weights) {
int answer = 0;
int sum = 0;
int tring = 0;
vector<int> time;
vector<int> wei;
while(1)
{
tring++;
//printf("%d cycle!\n", tring);
// 다리를 지난 트럭
if(time.size()>0 & time[0]>0)
{
//printf("Checking time... 1s\n");
for(int i=0;i<time.size();i++)
{
time[i]--;
}
for(int i=time.size()-1;i>=0;i--)
{
if(time[i]==0){
time.erase(time.begin()+i);
sum -= wei[i];
//printf("End... %d, sum=%d, answer=%d\n",wei[i],sum,answer);
wei.erase(wei.begin()+i);
}
}
}
// 다리를 건너는 중인 트럭
// 대기 트럭
for(int i=0;i<truck_weights.size();)
{
if(weight>=sum+truck_weights[i])
{
if(tring!=1 & sum==0)
{
//printf("Add to truck... (:%d)\n",truck_weights[i]);
}
else{
//printf("Add to truck... +1s(:%d)\n",truck_weights[i]);
}
sum += truck_weights[i];
time.push_back(bridge_length);
wei.push_back(truck_weights[i]);
truck_weights.erase(truck_weights.begin());
}
break;
}
if(truck_weights.size()==0 & time.size()==0)
break;
}
answer = tring;
return answer;
}
'개발 > Coding Test' 카테고리의 다른 글
[프로그래머스 C++ Lv2] 전화번호 목록 (0) | 2022.06.06 |
---|---|
[프로그래머스 C++ Lv2] H-Index (0) | 2022.06.06 |
[프로그래머스 C++ Lv2] 스킬트리 (0) | 2022.06.06 |
[프로그래머스 C++ Lv2] 프린터 (0) | 2022.06.06 |
[프로그래머스 C++ Lv2] 주식가격 (0) | 2022.06.06 |
댓글