🔗문제 풀러가기
단계별로 풀어보기 단계 16의 10번째 문제이다.
Deque컨네이너를 사용하여 문제를 해결하였다.
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<pair<int, int>> dq;
int n;
cin >> n;
int num;
for (int i = 0; i < n; i++)
{
cin >> num;
dq.push_back(make_pair(num, i + 1));
}
while (!dq.empty())
{
int cur = dq.front().first;
cout << dq.front().second << " ";
dq.pop_front();
if (dq.empty()) { break; }
if (cur > 0)
{
for (int i = 0; i < cur - 1; i++)
{
dq.push_back(dq.front());
dq.pop_front();
}
}
else
{
for (int i = 0; i < (-1) * cur; i++)
{
dq.push_front(dq.back());
dq.pop_back();
}
}
}
}