function solution(prices) {
const len = prices.length;
const result = Array(len).fill(0);
const stack = [];
for (let i = len - 1; i >= 0; --i) {
while (stack.length && stack.at(-1)[0] >= prices[i]) stack.pop();
result[i] = stack.length ? stack.at(-1)[1] - i : len - i - 1;
stack.push([prices[i], i]);
}
return result;
}
이전에 풀었던 뒷큰수 문제 힌트에서 이 문제와 비슷한 유형이라는 걸 미리 봤기 때문에 풀 수 있었다. 처음에는 효율성 3번을 통과하지 못했는데, prices.length를 그때그때 구하지 않고 미리 변수를 만들어 저장해뒀더니 통과가 됐다.