⚡문제정보
문제가 되게 길어보이는데 사실 간단합니다.
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해주는 것으로 풀 수 있네요
반응형
'leetcode' 카테고리의 다른 글
503. Next Greater Element II 자바스크립트 (0) | 2023.01.07 |
---|---|
20. Valid Parentheses 자바스크립트 스택 (0) | 2023.01.07 |
451. Sort Characters By Frequency 자바스크립트 (0) | 2023.01.07 |
349. Intersection of Two Arrays 자바스크립트 (0) | 2023.01.07 |
290. Word Pattern 자바스크립트 (0) | 2023.01.07 |