백준 -1874 스택 수열

phoenixKim·2021년 9월 17일
0

백준 알고리즘

목록 보기
18/174

백준 주의사항

  • 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';

}

//스택에 푸쉬하는 수서는 오름차순이다?
profile
🔥🔥🔥

0개의 댓글

관련 채용 정보