• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

두수의 차 문제

23.06.24 07:58 작성 조회수 181

0

저는 이문제는 이렇게 해봤는데

영상에서는 포문이 두개 들어가더라구요

이 방식도 맞는지 한번 봐주실수 있을까요?

def solution(nums):
    sortArr = sorted(nums)
    minVal = 1000
    result = []

    for i in range(len(sortArr)-1):
        subVal = sortArr[i + 1] - sortArr[i]
        minVal = min(subVal, minVal)

        list = [sortArr[i], sortArr[i+1]]

        if minVal == subVal:
            result.append(list)

    return result

답변 1

답변을 작성해보세요.

0

안녕하세요^^

반례 : [1, 5, 8, 10, 11]

답이 [[1, 5], [5, 8], [8, 10], [10, 11]] 이렇게 나올 겁니다. 답은 [[10, 11]] 하나만 나와야 합니다.

입력된 수열의 minVal 가 정해지고 나서 다시 for문을 돌면서 result에 인접한 두 수의 차가 minVal인 쌍만 추가해야 합니다. 다음 영상이 위와 같은 방식으로 시간복잡도를 줄이는 영상입니다. 참고해보세요.