카테고리 없음
17298번 오큰수 - C++
개발하는 민우
2022. 7. 21. 21:36
[문제]
https://www.acmicpc.net/problem/17298
17298번: 오큰수
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.
www.acmicpc.net
[풀이]
스택
[코드]
#include <bits/stdc++.h>
using namespace std;
int arr[1000005] = {-1};
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
stack<pair<int, int>> S;
memset(arr, -1, sizeof(arr));
for(int i=0; i<N; i++){
int a;
cin >> a;
while(!S.empty() && S.top().first < a){
arr[S.top().second] = a;
S.pop();
}
S.push({a, i});
}
for(int i=0; i<N; i++)
cout << arr[i] << " ";
}