•
문제 설명 : nums2과 nums2의 일부 데이터를 가져온 nums1가 존재한다. 이때 nums1의 숫자가 nums2에서 존재하는 인덱스 이후 더 큰 값이 존재하는지 확인하고 반환한다.
•
풀이 방법
◦
nums1의 숫자들의 순회 지점을 바로 찾기 위해 nums2에서 각 숫자의 인덱스를 저장
◦
순회 시, 기본 값은 미리 넣어두고 조건에 맞는 숫자 존재 시 변경하는 방식 사용
•
시간복잡도 :
•
성공 코드
# O(N^2)
class Solution:
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
num_info = {v: i for i, v in enumerate(nums2)}
result = []
# nums1의 숫자 확인
for num in nums1:
# 기본 값인 -1 추가
result.append(-1)
# 만약 nums2에 현재 순회중인 num보다 큰 값이 존재하면, 기본 값 -1을 해당 값으로 변경
for i in range(num_info[num] + 1, len(nums2)):
if nums2[i] > num:
result[-1] = nums2[i]
break
return result
Python
복사