- 문제 링크 : boj.kr/13335
- 난이도 : S1
- 태그 : 시뮬레이션, 큐
코드
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define INF 0x7FFFFFFF
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, w, l;
cin >> n >> w >> l;
vector<int> arr(n);
for(auto &e : arr) cin >> e;
queue<int> _q;
for(int i = 0; i < w; i++) _q.push(0);
int sum = 0;
int cnt = 0;
int idx = 0;
int ans = 0;
while(++ans) {
int curr = _q.front(); _q.pop();
if(curr) {
cnt++;
sum -= curr;
}
if(cnt == n) break;
if(arr[idx] <= l-sum) {
_q.push(arr[idx]);
sum += arr[idx];
idx++;
}
else {
_q.push(0);
}
}
cout << ans;
return 0;
}
풀이
트럭이 올라가지 않는 위치엔 무게가 0인 트럭이 올라가 있다고 생각한다.
그러면 매 시간마다의 시뮬레이션을 큐에서 하나의 원소를 pop하는 것으로 대체할 수 있다.
728x90
'PS' 카테고리의 다른 글
BOJ 29719 : 브실이의 불침번 근무 (0) | 2025.02.09 |
---|---|
BOJ 12789 : 도키도키 간식드리미 (0) | 2025.02.08 |
BOJ 3258 : 컴포트 (0) | 2025.02.06 |
BOJ 28447 : 마라탕 재료 고르기 (2) | 2025.02.05 |
BOJ 3896 : 소수 사이 수열 (0) | 2025.02.04 |