직대딩 블로그

BOJ 1874번 스택 수열 본문

알고리즘/백준 온라인 저지

BOJ 1874번 스택 수열

Jae Yeon 2023. 2. 19. 18:56

https://www.acmicpc.net/problem/1874

 

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

stack 의 push/pop 연산을 이용해 입력받은 수열의 순서 재배치 가능 여부를 확인하면 된다.

#include<iostream>
#include<stack>
#include<vector>
using namespace std;
int main()
{
	int n = 0, m = 0;
	int a[100005];
	stack<int> stk;
	vector<char> vec;

	cin >> n;
	for (int i = 0; i < n; i++) cin >> a[i];

	for (int i = 1; i <= n; i++)
	{
		stk.push(i);
		vec.push_back('+');
		while (!stk.empty() && stk.top() == a[m])
		{
			m++;
			stk.pop();
			vec.push_back('-');
		}
	}
	if (!stk.empty()) cout << "NO";
	else
	{
		for (int i = 0; i < vec.size(); i++)
			cout << vec.at(i) << "\n";
	}	
}

'알고리즘 > 백준 온라인 저지' 카테고리의 다른 글

BOJ 10799번 쇠막대기  (0) 2023.02.18
BOJ 10845번 큐  (0) 2023.02.17
BOJ 17427번 약수의 합 2  (0) 2023.02.16
BOJ 10159번 저울  (0) 2023.02.16
BOJ 20366번 같이 눈사람 만들래?  (0) 2023.02.13
Comments