티스토리 뷰

백준

백준 소스코드 [C++] 1874 스택 수열

Hani_Levenshtein 2020. 8. 19. 00:03

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

백준 소스코드 [C++] 1874 스택 수열

#include <iostream>
#include <stack>
#include <string>
#include <vector>

using namespace std;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    vector<char> res;
    stack<int> middle;
    cin >> n;
    int* left = new int[n];
    for (int i = 0;i < n;i++) cin >> left[i];
    for (int i = 1, j = 0;i <= n;i++) {
        middle.push(i);
        res.push_back('+');
        while ((middle.empty() != true) && (middle.top() == *(left+j))) {
            res.push_back('-');
            middle.pop();
            j++;
        }
    }

    if (middle.empty() != true) cout << "NO";
    else for (int i = 0;i < (int)res.size();i++) cout << res.at(i) <<'\n';
    return 0;
}

댓글