leetcode

496. Next Greater Element I 자바스크립트

냠냠맨 2023. 1. 7. 21:35

⚡문제정보

 

문제가 되게 길어보이는데 사실 간단합니다.

nums1은 nums2의 부분집합이고 각 배열의 요소들은 중복이 없다는 가정인듯합니다.

예를 들어 nums1의 4를 기준으로 보면

nums2에서 4보다 큰값은 오른쪽에서 찾을 수 없으니 -1

 

nums1의 1을 기준으로 보면

nums2에서 1보다 큰 값 중 오른쪽에서 가장 가까운 값은 3이니까 3

 

이런식이네요

 


 

🔍나의 풀이

 

var nextGreaterElement = function(nums1, nums2) {
    let answer = []

    for(num of nums1) {
        let counter = -1
        for(i = nums2.indexOf(num) ; i<nums2.length; i++ ) {
            if(nums2[i] > num ) {
                counter = nums2[i]
                break
            }
        }
        answer.push(counter)
    }
    return answer
};

indexOf()로 num과 일치하는 값을 찾고 그 값을 기준으로 오른쪽을 바라봐야하니까

i는 indexOf로 구한 값으로 설정해줍니다.

num보다 큰 값을 만나면 counter에 대입해주고 for문에서 탈출하고

찾지못했다면 -1을 push해주는 것으로 풀 수 있네요

 

반응형