stack
선언map
선언nums2
순회stack
에 있는 이전 값이 현재 값보다 작다면 이전 값들의 next greater element
는 현재 요소가 됨stack
에 push
nums1
을 순회map
에 현재 요소가 없다면 -1
, 있다면 해당하는 next greater element
를 반환function nextGreaterElement(nums1: number[], nums2: number[]): number[] {
const stack = []
const map = new Map<number, number>()
for(const num2 of nums2) {
while(stack.length && stack[stack.length - 1] < num2) {
map.set(stack.pop(), num2)
}
stack.push(num2)
}
return nums1.map(num => map.get(num) ?? -1)
};