#include<iostream> #include<algorithm> #include<stack> using namespace std; int N, ans, h[100002]; stack<int> s; int main() { cin >> N; for (int i = 1; i <= N; i++) cin >> h[i]; s.push(0); for (int i = 1; i <= N + 1; i++) { while (!s.empty() && h[s.top()] > h[i])
{
int check = s.top();
s.pop();
ans = max(ans, h[check]*(i - s.top() - 1));
}
s.push(i);
}
cout << ans;
}
백준 1725번 문제 해답인데 봐도 이해가 안댐 ..
https://www.acmicpc.net/problem/1725
문제
아직 이해 안됨?
코테 안보는 회사 가는거 추천
ㅁㄹ걍 세그먼트 트리 공부해와라