[문제]
https://www.acmicpc.net/problem/2493
[유형]
스택
[코드]
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
stack <pair<int, int>> S;
vector <int> v;
int index = 1;
while(n--) {
int t;
cin >> t;
if(index == 1) {
S.push({t, index});
v.push_back(0);
index++;
continue;
}
while(!S.empty() && t > S.top().first) {
S.pop();
}
if(S.empty()) v.push_back(0);
else if(!S.empty()) v.push_back(S.top().second);
S.push({t, index});
index++;
}
for(int i=0; i<v.size(); i++) {
cout << v[i] << " ";
}
}
'✏️ Algorithm > 알고리즘 풀이' 카테고리의 다른 글
10773번 제로 - C++ (0) | 2022.07.16 |
---|---|
10828번 스택 - C++ (0) | 2022.07.16 |
백준 10807번 - 개수 세기 C++ (0) | 2022.04.16 |
백준 3273번 - 두 수의 합 C++ (0) | 2022.04.16 |
백준 1475번 - C++ 방 번호 (0) | 2022.04.14 |