단순 비교(O(N^2)) 로 풀지 못할 때 내가 떠올리는 풀이는 인덱스트리와 투포인터 밖에 없는 거 같다. 좀 더 고민을 많이 해볼 것
풀이를 나중에 떠올렸음에도 스택에 인덱스가 아닌 값을 넣어서 이걸 어떻게 처리하나 고민했었다. 그냥 인덱스를 넣으면 인덱스 값과 배열 값도 알 수 있는데
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
Arrays.fill(answer,-1);
Stack<Integer> s= new Stack<>();
for(int i=0; i<numbers.length; i++){
while(!s.isEmpty() && numbers[i]>numbers[s.peek()]){
answer[s.pop()] = numbers[i];
}
s.push(i);
}
return answer;
}
}