[백준/BOJ] 백준 1874번 : 스택 수열
2020. 8. 25. 00:35ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/1874
스택을 사용하여 문제를 해결했다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <string>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n;
int input;
vector<int> input_list;
stack<int> s;
int pointer = 0;
string result;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> input;
input_list.push_back(input);
}
for (int i = 1; i <= n; i++)
{
s.push(i);
result += "+";
//스택의 top과 input_list[pointer]가 같다면 달라질때까지 스택에서 pop한다
while (!s.empty() && s.top() == input_list[pointer])
{
s.pop();
pointer++;
result += "-";
}
}
//입력된 수열을 완성하지 못했을때
if (pointer != n)
cout << "NO";
else
{
for (int i = 0; i < result.size(); i++)
cout << result[i] << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 6198번 : 옥상 정원 꾸미기 (0) | 2020.08.25 |
---|---|
[백준/BOJ] 백준 2493번 : 탑 (0) | 2020.08.25 |
[백준/BOJ] 백준 10773번 : 제로 (0) | 2020.08.24 |
[백준/BOJ] 백준 10828번 : 스택 (0) | 2020.08.24 |
[백준/BOJ] 백준 17136번 : 색종이 붙이기 (0) | 2020.08.23 |