๋ฌธ์
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์ ์ถ๋ ฅํ๋ค.
ํ์ด
(1)
์คํ์ ์ด์ฉํ์ฌ ํ์ดํ๋ค.
์ด๋, ์์ ํ๋ ํ์ "๋์ด"๊ฐ ์๋ "๋ช๋ฒ์งธ์ธ์ง" ๋ฅผ ์ถ๋ ฅํด์ผํ๊ธฐ ๋๋ฌธ์
pair๋ฅผ ์ด์ฉํ์ฌ ํ์ ๋์ด์ ๋ฒ์งธ์๋ฅผ ์คํ์ ํจ๊ป ์ ์ฅํด์ฃผ์๋ค.
๋ฒ์งธ์๋ ํด๋น ํ์ ์ ์ฅํ ๋์ i๊ฐ๊ณผ ๊ฐ์ผ๋ฏ๋ก ์ฝ๊ฒ ๊ตฌํ ์ ์์๋ค.
(2)
๊ทธ๋ฆฌ๊ณ ์คํ์ด ๋น์ด์๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ๋ถ๊ธฐ์ฒ๋ฆฌํด์ฃผ๊ธฐ ๊ท์ฐฎ์์
์ฒ์์ ์๋ผ์ดํ๊ณ ๊ฐ์ฅ ๋์ ํ (ํ ๋์ด์ ์ต๋๊ฐ + 1)์ 0๋ฒ์งธ ํ์ผ๋ก ๋ฃ์ด๋ฒ๋ฆผ
๋๋ถ์ ์์ ํ ํ์ด ์๋ค๋ฉด (์์ ๋ณธ์ธ๋ณด๋ค ํฐ ํ์ด ์๋ค๋ฉด) 0์ ์ถ๋ ฅํ๊ฒ ๋จ.
(3)
์คํ ๊ผญ๋๊ธฐ์ ์๋ ํ ๋์ด๊ฐ ์์ ๋ณด๋ค ๋ฎ๋ค๋ฉด ์ด์ฐจํผ ํด๋น ํ์ ์์ ์ ์ ํธ๋ฅผ ๋ฐ์ง ๋ชปํ๋ค.
๋ฐ๋ผ์ ์์ ๋ณด๋ค ๋์ ํ์ด ๋ณด์ผ๋๊น์ง popํด์ค
(4)
์คํ ๊ผญ๋๊ธฐ์ ์๋ ํ ๋์ด๊ฐ ์์ ๋ณด๋ค ๋๋ค๋ฉด ๊ทธ๋ฅ push๋๋ฉด ๋๋ค
์ด๋ push ๋๊ธฐ ์ ๊ทธ ๊ผญ๋๊ธฐ ํ์ด ๋ช๋ฒ์งธ ํ์ธ์ง ์ถ๋ ฅํ๋ค.
์์ ๋ณด๋ค ๋๋ค๋ ํด๋น ํ์ด ์์ ์ ์ ํธ๋ฅผ ์์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ.
// Authored by : seondal
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
#include <stack>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
stack < pair<int, int> > s; //(1)
s.push({0, 100000001}); //(2)
int n;
cin >> n;
for(int i=1; i<=n; i++){
int t;
cin >> t;
while(s.top().second < t) //(3)
s.pop();
cout << s.top().first << " ";
s.push({i, t}); //(4)
}
return 0;
}
/*
*/
'๐ Baaaaaarking > 0x05๊ฐ - ์คํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ G1][C++] ๋ฐฑ์ค 3015๋ฒ: ์ค์์์ค ์ฌ๊ฒฐํฉ (0) | 2022.02.16 |
---|---|
[BOJ G4][C++] ๋ฐฑ์ค 17298๋ฒ: ์คํฐ์ (1) | 2022.02.13 |
[BOJ G5][C++] ๋ฐฑ์ค 6198๋ฒ: ์ฅ์ ์ ์ ๊พธ๋ฏธ๊ธฐ (0) | 2022.02.13 |
[BOJ][C++] 1874๋ฒ : ์คํ ์์ด (0) | 2022.01.08 |
[BOJ][C++] ๋ฐฑ์ค 10773๋ฒ : ์ ๋ก (0) | 2022.01.06 |