[프로그래머스]

프로그래머스 다리를 지나는 트럭 C++

Hevton 2023. 8. 18. 13:02
반응형

 

맨 처음엔 다리에 올라갈 차의 순서를 재조정해서 최소값을 찾는줄 알고

무슨 문제가 이렇지.. 하면서 풀었는데

 

알고보니 순서는 순서대로라고 명시되어 있었다.

#include <string>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

int solution(int bridge_length, int weight, vector<int> truck_weights) {
    int answer = 0;    
    queue<int> que;
    int queWeight = 0;
    int size = truck_weights.size();
    int iter = 0;
    
    for(int i = 0; i < bridge_length; i++)
        que.push(0);
    
    
    do {
        
        queWeight -= que.front();
        que.pop();
        
        if(iter < size && queWeight + truck_weights[iter] <= weight) {
            queWeight += truck_weights[iter];
            que.push(truck_weights[iter++]);
        } else {
            que.push(0);
        }
        answer++;
        
    } while(queWeight > 0);
  
    return answer;
}

 

큐를 이용해서 풀었다.

반응형