백준

1874번: 스택 수열

Honyack 2024. 5. 2. 08:35

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

#include <iostream>
#include <vector>
#include <stack>
using namespace std;

int main()
{
	int n;
	cin >> n;

	vector<int>nums(n);

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

	stack<int> s;
	s.push(0);
	string str = "";

	int num = 1;

	for (int i = 0; i < n; i++)
	{
		while (s.top() < nums[i])
		{
			s.push(num);
			num++;
			str += "+";
		}

		if (s.top() == nums[i]) {
			s.pop();
			str += "-";
		}
		else
		{
			cout << "NO";
			return 0;
		}
	}

	for (auto v : str)
		cout << v << "\n";

	return 0;
}

'백준' 카테고리의 다른 글

2164번: 카드2  (0) 2024.05.05
17298번 : 오큰수 구하기  (0) 2024.05.04
11003번: 최솟값 찾기  (0) 2024.05.02
12891번: DNA 비밀번호  (0) 2024.04.30
1940번: 주몽  (0) 2024.04.24