[백준]/C++
백준 16692번 Greedy Scheduler [C++]
경우42
2024. 8. 27. 19:57
반응형
#문제 간단 정리
#문제 해결 방법
우선순위 큐를 써도 되지만
n이 작기때문에
나이브하게 그냥 구현해도 돌아간다
#전체 코드
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main() {
int n, c;
cin >> n >> c;
vector<int> times(c);
for (int i = 0; i < c; i++) {
cin >> times[i];
}
vector<int> cashier(n, 0); // 각 계산대의 남은 시간
vector<int> ans(c); // 각 고객이 배정된 계산대 번호를 저장
for (int i = 0; i < c; i++) {
// 가장 빨리 비는 계산대를 찾기
int min_time = cashier[0];
int min_index = 0;
for (int j = 1; j < n; j++) {
if (cashier[j] < min_time) {
min_time = cashier[j];
min_index = j;
}
}
// 고객을 가장 빨리 비는 계산대에 배치
ans[i] = min_index + 1;
cashier[min_index] += times[i]; // 해당 계산대의 남은 시간 갱신
}
// 결과 출력
for (int a : ans) {
cout << a << " ";
}
return 0;
}
반응형