본문 바로가기

problem solving

[BOJ]1874번: 스택 수열

#include <iostream>
#include <algorithm>
#include <vector>
 
int stack[1000000];
 
int main(void) {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
 
    int len;
    std::cin >> len;
 
    std::vector<int> val(len);
 
    for(int idx = 0; idx < len; idx++) {
        std::cin >> val[idx];
    }
 
    std::fill(stackstack + 10000000);
 
    int valPos = 0;
    int seq = 1;
    int max = 0;
    std::vector<char> store;
    while(valPos < len && stack[max - 1< val[valPos]) {
        stack[max++= seq++;
        store.push_back('+');
        while(valPos < len && stack[max - 1== val[valPos]) {
            max--;
            valPos++;
            store.push_back('-');
        }
    }
 
    if(valPos < len) {
        std::cout << "NO" << "\n";
    }
    else {
        for(int idx = 0; idx < store.size(); idx++) {
            std::cout << store[idx] << "\n";
        }
    }
    return 0;
}
cs

'problem solving' 카테고리의 다른 글

[프로그래머스]단체사진 찍기  (0) 2020.03.28
[SWEA]2814. 최장 경로  (0) 2020.03.15
[LeetCode]#2 Add Two Numbers  (0) 2020.03.14
[프로그래머스]디스크 컨트롤러  (0) 2020.03.14
[프로그래머스]섬 연결하기  (0) 2020.03.13