- 플레티넘V 등급 문제: 내 실력은 아직 부족하기 때문에, 풀이시간이 오래 걸릴 수 밖에 없음
- 게다가 정답률도 20% -> 플레티넘V 이상의 문제라는 의미
- 스택 + 문제에 맞는 풀이 필요
- long long으로 자료형 설정[이 개같은거 때문에 시간낭비를 오지게 했다.]
#include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long N, height, answer = 0; stack<pair<long long, long long>> stk; cin >> N; cin >> height; stk.push({height, 0}); for(long long i = 1; i < N; ++i){ long long tmp = 0; cin >> height; while(!stk.empty() && stk.top().first <= height){ if(stk.top().first == height){ tmp = stk.top().second + 1; answer = answer + tmp; stk.pop(); } else{ answer = answer + stk.top().second + 1; stk.pop(); } } if(!stk.empty() && stk.top().first >= height) ++answer; stk.push({height, tmp}); } cout << answer; return 0; }