백준

17298번 : 오큰수 구하기

Honyack 2024. 5. 4. 16:56

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

#include <iostream>
#include <vector>
#include <stack>
using namespace std;

int main()
{
    int N;
    cin >> N;

    vector<int> nums(N);
    for (int i = 0; i < N; i++)
        cin >> nums[i];

    vector<int> result(N, -1);

    stack<int> s;
    for (int i = 0; i < N; i++)
    {
        while (!s.empty() && nums[s.top()] < nums[i])
        {
            result[s.top()] = nums[i];
            s.pop();
        }
        s.push(i);
    }
    
    for (auto v : result)
        cout << v << " ";
    return 0;
}

'백준' 카테고리의 다른 글

11286번: 절댓값 힙  (0) 2024.05.06
2164번: 카드2  (0) 2024.05.05
1874번: 스택 수열  (0) 2024.05.02
11003번: 최솟값 찾기  (0) 2024.05.02
12891번: DNA 비밀번호  (0) 2024.04.30