[백준] 13335번*

Jeanine·2022년 4월 9일
0

baekjoon

목록 보기
68/120
post-thumbnail

💻 C++ 기반

트럭
https://www.acmicpc.net/problem/13335

✔️ 트럭이 빠져나가는 것은 트럭이 그 자리에 있든 없든 매번 반복하게 하면 됨

#include <cstdio>
#include <queue>

#define MAX 11
#define MAX_LEN 101

using namespace std;

int n, w, L;
int loc[MAX_LEN];

bool isEmpty()
{
    for (int i = 0; i < w; i++)
    {
        if (loc[i])
        {
            return false;
        }
    }
    return true;
}

int main()
{
    scanf("%d %d %d", &n, &w, &L);
    queue<int> rest;
    for (int i = 0; i < n; i++)
    {
        int truck;
        scanf("%d", &truck);
        rest.push(truck);
    }

    int ans = 0;
    do
    {
        int total = 0;
        for (int i = 0; i < w; i++)
        {
            total += loc[i];
        }

        if (total <= L)
        {
            total -= loc[w - 1];
            for (int i = w - 1; i > 0; i--)
            {
                loc[i] = loc[i - 1];
            }
            loc[0] = 0;

            if (!rest.empty() && (total + rest.front() <= L))
            {
                loc[0] = rest.front();
                rest.pop();
            }
        }
        ans++;
    } while (!isEmpty());
    
    printf("%d", ans);
    return 0;
}
profile
Grow up everyday

0개의 댓글