백준 주의사항
- endl 절대 사용하지 말자. -> 시간 초과 나온다.
풀이전략
- 일단 입력 수만큼의 반복문을 돌려야 한다.
- 그리고 그 안에서 삽입과 삭제가 이루어 져야 한다.
최종 소스 코드
#include <iostream>
#include <string>
#include <stack>
#include <vector>
using namespace std;
int main() {
int cnt = 1;
int n;
cin >> n;
stack<int>s;
vector<char>v;
for (int i = 0; i < n; i++)
{
int num;
cin >> num;
//2 -> 5 -> 6
//6
while (cnt <= num)
{
s.push(cnt++);
v.push_back('+');
}
if (s.top() == num)
{
v.push_back('-');
s.pop();
}
else
{
cout << "NO";
return 0;
}
}
for (char i : v)
cout << i << '\n';
}
//스택에 푸쉬하는 수서는 오름차순이다?