문제 출처: https://www.acmicpc.net/problem/15235
Silver 5
queue를 적절히 이용하면 된다!
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
int main() {
int N;
cin >> N;
queue<pair<int,int>> q;
for (int i = 0; i < N; i++) {
int x;
cin >> x;
q.push({ x,i });
}
vector<int> ans(N);
int cnt = 1;
while (!q.empty()) {
int x = q.front().first;
int idx = q.front().second;
q.pop();
x--;
if (x == 0) {
ans[idx] = cnt;
}
else q.push({ x,idx });
cnt++;
}
for (int i = 0; i < ans.size(); i++) cout << ans[i] << " ";
return 0;
}
첨에 보고 정답율이 95%길래 대체 어떤 문제길래 95%지? 하면서 풀었다. 알고보니 제출한 사람도 적은데 그 제출한 사람들이 거진 다 맞아서 그렇게 나온거였던ㅋㅋㅋㅋ