๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

[C++/BOJ] 2493 : ํƒ‘ (Stack)

728x90

 

https://www.acmicpc.net/problem/2493

 

๋ฐฑ์ค€ ๊ณจ๋“œ5

์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด์„œ 2์ค‘๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ผ๋Š”๋ฐ.. ์‹œ๊ฐ„์ดˆ๊ณผ ใ…‹ใ…‹

์Šคํƒ์„ ์‚ฌ์šฉํ•ด์„œ ๋‚ฎ์€ ๊ฑด popํ•˜๊ณ , ์ˆ˜์‹  ํƒ‘๋งŒ ๋‚จ๊ฒจ๋‘์–ด์•ผ ํ•œ๋‹ค

 

 

๋‚˜์˜ ํ’€์ด

#include<iostream>
#include<vector>
#include <stack>
using namespace std;

int main() // ์ด์ค‘๋ฐ˜๋ณต๋ฌธ ์“ฐ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๋‚จ
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n;
	int height;
	stack<pair<int,int>> st; // ์ธ๋ฑ์Šค, ๋†’์ด
	cin >> n;
	for (int i = 1; i <= n; ++i){
		cin >> height;
		while(!st.empty()){
			if(st.top().second < height) st.pop();
			else {
				cout << st.top().first <<" ";
				st.push({i, height});
				break;
			}
		}
		if(st.empty()) {
			cout << 0 <<" ";
			st.push({i, height});
		}
	}
}
728x90