😎풀이

  1. stack 선언
  2. map 선언
  3. nums2 순회
    3-1. stack에 있는 이전 값이 현재 값보다 작다면 이전 값들의 next greater element는 현재 요소가 됨
    3-2. 현재 요소를 stackpush
  4. nums1을 순회
    4-1. 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)
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글