- toc {:toc}
λ¬Έμ
KOI ν΅μ μ°κ΅¬μλ λ μ΄μ λ₯Ό μ΄μ©ν μλ‘μ΄ λΉλ° ν΅μ μμ€ν κ°λ°μ μν μ€νμ νκ³ μλ€. μ€νμ μνμ¬ μΌμ§μ μμ Nκ°μ λμ΄κ° μλ‘ λ€λ₯Έ νμ μν μ§μ μ μΌμͺ½λΆν° μ€λ₯Έμͺ½ λ°©ν₯μΌλ‘ μ°¨λ‘λ‘ μΈμ°κ³ , κ° νμ κΌλκΈ°μ λ μ΄μ μ‘μ κΈ°λ₯Ό μ€μΉνμλ€. λͺ¨λ νμ λ μ΄μ μ‘μ κΈ°λ λ μ΄μ μ νΈλ₯Ό μ§νλ©΄κ³Ό νννκ² μν μ§μ μ μΌμͺ½ λ°©ν₯μΌλ‘ λ°μ¬νκ³ , νμ κΈ°λ₯ λͺ¨λμλ λ μ΄μ μ νΈλ₯Ό μμ νλ μ₯μΉκ° μ€μΉλμ΄ μλ€. νλμ νμμ λ°μ¬λ λ μ΄μ μ νΈλ κ°μ₯ λ¨Όμ λ§λλ λ¨ νλμ νμμλ§ μμ μ΄ κ°λ₯νλ€.
μλ₯Ό λ€μ΄ λμ΄κ° 6, 9, 5, 7, 4μΈ λ€μ― κ°μ νμ΄ μν μ§μ μ μΌλ ¬λ‘ μ μκ³ , λͺ¨λ νμμλ μ£Όμ΄μ§ ν μμμ λ°λ λ°©ν₯(μΌμͺ½ λ°©ν₯)μΌλ‘ λμμ λ μ΄μ μ νΈλ₯Ό λ°μ¬νλ€κ³ νμ. κ·Έλ¬λ©΄, λμ΄κ° 4μΈ λ€μ― λ²μ§Έ νμμ λ°μ¬ν λ μ΄μ μ νΈλ λμ΄κ° 7μΈ λ€ λ²μ§Έ νμ΄ μμ μ νκ³ , λμ΄κ° 7μΈ λ€ λ²μ§Έ νμ μ νΈλ λμ΄κ° 9μΈ λ λ²μ§Έ νμ΄, λμ΄κ° 5μΈ μΈ λ²μ§Έ νμ μ νΈλ λμ΄κ° 9μΈ λ λ²μ§Έ νμ΄ μμ μ νλ€. λμ΄κ° 9μΈ λ λ²μ§Έ νκ³Ό λμ΄κ° 6μΈ μ²« λ²μ§Έ νμ΄ λ³΄λΈ λ μ΄μ μ νΈλ μ΄λ€ νμμλ μμ μ νμ§ λͺ»νλ€.
νλ€μ κ°μ Nκ³Ό νλ€μ λμ΄κ° μ£Όμ΄μ§ λ, κ°κ°μ νμμ λ°μ¬ν λ μ΄μ μ νΈλ₯Ό μ΄λ νμμ μμ νλμ§λ₯Ό μμλ΄λ νλ‘κ·Έλ¨μ μμ±νλΌ.
μ λ ₯
첫째 μ€μ νμ μλ₯Ό λνλ΄λ μ μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 1 μ΄μ 500,000 μ΄νμ΄λ€. λμ§Έ μ€μλ Nκ°μ νλ€μ λμ΄κ° μ§μ μμ λμΈ μμλλ‘ νλμ λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. νλ€μ λμ΄λ 1 μ΄μ 100,000,000 μ΄νμ μ μμ΄λ€.
μΆλ ₯
첫째 μ€μ μ£Όμ΄μ§ νλ€μ μμλλ‘ κ°κ°μ νλ€μμ λ°μ¬ν λ μ΄μ μ νΈλ₯Ό μμ ν νλ€μ λ²νΈλ₯Ό νλμ λΉμΉΈμ μ¬μ΄μ λκ³ μΆλ ₯νλ€. λ§μ½ λ μ΄μ μ νΈλ₯Ό μμ νλ νμ΄ μ‘΄μ¬νμ§ μμΌλ©΄ 0μ μΆλ ₯νλ€.
μΆμ²: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, res = 0;
stack<pair<int, int>> s;
cin >> n;
s.push({100000001, 0});
for(int i=1; i<=n; i++){
int p;
cin >> p;
if(s.empty() || p > s.top().first){
while(p > s.top().first){
s.pop();
}
res = s.top().second;
cout << res << ' ';
}
else{
res = s.top().second;
cout << res << ' ';
}
s.push({p, i});
}
return 0;
}μ λ΅μ½λλ₯Ό ν΅ν΄μ pairλ₯Ό ν΅ν΄ μ€μ νλ λ°©μμ μμλμ.