[백준 2346] 풍선 터뜨리기

alsry._.112·2023년 10월 11일
0

백준

목록 보기
81/102

🔗문제 풀러가기
단계별로 풀어보기 단계 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();
			}
		}
	}
}
profile
소통해요

0개의 댓글