문제

풀이

구현

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a97c5a29-84e4-45f5-90d6-9de34cc075c0/Untitled.png

#include <iostream>
#include <queue>
#include <stack>
#include <vector>

using namespace std;

int n;
queue<int> nums;
stack<int> tmp;
vector<char> result;

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

void input() {
	int _t;

	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> _t;
		nums.push(_t);
	}
}

void solve() {
	int i;

	i = 1;
	while (nums.size()) {
		for (; i <= nums.front(); i++) {
			tmp.push(i);
			result.push_back('+');
		}
		if (tmp.top() == nums.front()) {
			nums.pop();
			tmp.pop();
			result.push_back('-');
		} else
			break;
	}

	if (nums.size() > 1) {
		cout << "NO";
	} else {
		for(auto& i : result)
			cout << i << "\\n";
	}
}

int main() {
    pre();
    input();
    solve();
    return (0);
}