[백준/C++] 스택 수열_1874

leeact·2023년 6월 29일
1

[백준/c++]

목록 보기
24/24
post-thumbnail

📝 문제

https://www.acmicpc.net/problem/1874

💻 코드

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


using namespace std;

int main() {
    int t;
    cin >> t;
    
    int p = 0;
    vector<char> v;
    stack<int> q;

    while (t--) {
        int n;
        cin >> n;

       
        while (p < n) {
            p += 1;
            q.push(p);
            v.push_back( '+' );
        }
        
        if (q.top() == n) {
            q.pop();
            v.push_back( '-' );
        }
        else {
            cout << "NO";
            return 0;
        }
    }

    for (int i = 0; i < v.size(); i++) {
        cout << v[i] << '\n';
    }

    return 0;
}

📌 해결방법

  1. 스택 구조를 이해하려고 노력하기!
  2. stack 헤더파일을 이용해서 문제대로 구현

✔ 느낀 점

stack 헤더를 처음 사용해봤는데 말 그대로 스택이라 크게 어렵지는 않았다.
stack을 사용하기 전에는 직접 구현해보려고 했는데 top과 현재 pointer가
제대로 동작하지 않아서 stack으로 해결^^;;

2개의 댓글

comment-user-thumbnail
2023년 7월 16일

저도 오늘 큐와 스택을 정리했는데^^

1개의 답글