Menu
CoddyTech

Next Greater Element I

서로 다른 정수로 이루어진 두 배열 nums1과 nums2가 주어지며, nums1의 모든 값은 nums2에도 나타납니다. 값 x의 다음으로 큰 요소는 nums2에서 x의 오른쪽에 있는 값 중 x보다 큰 첫 번째 값이며, 그러한 값이 없으면 -1입니다.

nums1의 각 값에 대해 다음으로 큰 요소를 담은 배열을 nums1의 순서대로 반환하세요.

함수

nextGreaterElement(nums1: integer-array, nums2: integer-array) → integer-array
nums1integer-array
답해야 할 값들로, 모두 nums2에서 찾을 수 있습니다
nums2integer-array
각 값의 오른쪽을 살펴보는 배열
반환값integer-array
nums1의 각 값에 대해 다음으로 큰 요소를 nums1의 순서대로 표시하거나, 없으면 -1

제약 조건

  • 1 ≤ nums1.length ≤ nums2.length ≤ 104
  • 0 ≤ nums1[i], nums2[i] ≤ 104
  • nums1의 모든 값은 서로 다르고, nums2의 모든 값은 서로 다릅니다.
  • nums1의 모든 값은 nums2에 나타납니다.

예제

입력
nums1 = [3, 8, 1]nums2 = [1, 6, 3, 8, 2]
출력
[8, -1, 6]
설명
nums2에서 3 다음에는 8과 2가 오고, 8은 3보다 큰 첫 번째 값입니다. 8 다음에는 2만 있으므로 8에는 -1이 할당됩니다. 1 바로 뒤의 값은 6이며, 이미 더 큽니다.

lock icon제출 시 숨은 테스트 +14개

challenge icon

후속 질문

nums2의 각 위치에 대해, 같은 한 번의 순회로 다음으로 큰 요소가 오른쪽으로 몇 단계 떨어져 있는지 반환할 수 있나요?

코드 초기화
def nextGreaterElement(nums1, nums2):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

nums1 = [3, 8, 1]
nums2 = [1, 6, 3, 8, 2]

기대값

[8, -1, 6]