코드 복사/붙여넣기 하는 당신이 아름답습니다.

1874 : 스택 수열

풀이

스택에 차곡차곡 쌓다가 알맞은 숫자를 만나면 팝팝 해주자!

코드

#include <stdio.h>
#include <stack>
#include <vector>
using namespace std;

int n, a[100001];
stack<int> stk;
vector<char> ans;

int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &a[i]);

	int pos = 0;
	for (int i = 1; i <= n; i++) {
		stk.push(i), ans.push_back('+');
		while (!stk.empty() && stk.top() == a[pos]) {
			pos++, stk.pop(), ans.push_back('-');
		}
	}

	if (!stk.empty()) puts("NO");
	else for (auto it : ans) printf("%c\n", it);

	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-09-21 11:19

Read more posts by this author