⭐️ 이분 탐색
upper_bound
로 현재 위치부터 배열 끝까지 범위 중에 현재 위치 값보다 큰 값이 처음 등장하는 인덱스의 배열값을 answer에 저장
반례도 통과하는데 왜 틀렸는지 모르겠다
⭐️ Stack
맨 뒤부터 stack에 넣어가며 가장 큰 뒷 수 탐색
#include <stack>
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer(numbers.size(),0);
stack<int> st;
for(int i=numbers.size()-1;i>=0;i--) {
while(!st.empty()) {
if(st.top()>numbers[i]) {
answer[i]=st.top();
st.push(numbers[i]);
break;
}
else st.pop();
}
if(st.empty()) {
answer[i]=-1;
st.push(numbers[i]);
}
}
return answer;
}