본문 바로가기

Coding/BaekJoon

B_2346

#include <iostream>
#include <vector>
#include <deque>

using namespace std;

deque<pair<int, int>> dq;

void init()
{
    ios_base::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
}

int main(void)
{
    init();
    int N, num;
    vector<int> answer;
    cin >> N;

    for (int i = 0; i < N; i++)
    {
        cin >> num;
        dq.push_back(make_pair(num, i + 1));
    }

    while (!dq.empty())
    {
        int this_bloon = dq.front().first;
        answer.push_back(dq.front().second);
        dq.pop_front();

        if(dq.empty()) break;

        if (this_bloon > 0)
        {
            for (int i = 0; i < this_bloon - 1; i++)
            {
                dq.push_back(dq.front());
                dq.pop_front();
            }
        }
        else if (this_bloon < 0)
        {
            for (int i = 0; i < this_bloon * (-1); i++)
            {
                dq.push_front(dq.back());
                dq.pop_back();
            }
        }
    }

    for (int i = 0; i < N; i++)
        cout << answer[i] << ' ';

    return 0;
}

'Coding > BaekJoon' 카테고리의 다른 글

B_24511  (0) 2023.12.05
B_13909  (1) 2023.11.27
B_4134  (0) 2023.11.27
B_1929  (1) 2023.11.27
B_4948  (0) 2023.11.27