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 |