본문 바로가기

코딩 테스트

백준 1874

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

using namespace std;


int main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    stack<int> stacks;
    vector<char> vectors;


    int pushNum = 1;

    int input = 0;
    cin >> input;

    for (int i = 0; i < input; ++i)
    {
        int num = 0;
        cin >> num;
        
        
        while (1)
        {
            if (!stacks.empty())
            {
                if (stacks.top() < num)
                {
                    stacks.push(pushNum++);
                    vectors.push_back('+');
                }
                else if (stacks.top() == num)
                {
                    stacks.pop();
                    vectors.push_back('-');
                    break;
                }
                else if (stacks.top() > num)
                {
                    cout << "NO";
                    return 0;
                }
            
            }
            else
            {
                stacks.push(pushNum++);
                vectors.push_back('+');
            }
        }
    }

    for (const auto iter : vectors)
    {
        cout << iter << "\n";
    }
  /*  for (auto iter = vectors.begin(); iter != vectors.end(); ++iter)
    {

    }*/
        

    return 0;
}

'코딩 테스트' 카테고리의 다른 글

백준 2751  (0) 2023.06.15
백준 1764  (0) 2023.06.14
백준 10989  (0) 2023.06.13
백준 11650  (0) 2023.06.12
백준 1120  (0) 2023.06.09