직대딩 블로그
BOJ 1874번 스택 수열 본문
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
stack 의 push/pop 연산을 이용해 입력받은 수열의 순서 재배치 가능 여부를 확인하면 된다.
#include<iostream>
#include<stack>
#include<vector>
using namespace std;
int main()
{
int n = 0, m = 0;
int a[100005];
stack<int> stk;
vector<char> vec;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
for (int i = 1; i <= n; i++)
{
stk.push(i);
vec.push_back('+');
while (!stk.empty() && stk.top() == a[m])
{
m++;
stk.pop();
vec.push_back('-');
}
}
if (!stk.empty()) cout << "NO";
else
{
for (int i = 0; i < vec.size(); i++)
cout << vec.at(i) << "\n";
}
}
'알고리즘 > 백준 온라인 저지' 카테고리의 다른 글
BOJ 10799번 쇠막대기 (0) | 2023.02.18 |
---|---|
BOJ 10845번 큐 (0) | 2023.02.17 |
BOJ 17427번 약수의 합 2 (0) | 2023.02.16 |
BOJ 10159번 저울 (0) | 2023.02.16 |
BOJ 20366번 같이 눈사람 만들래? (0) | 2023.02.13 |
Comments