새소식

Career/Coding Test

99클럽 코테 스터디 29/99일차 TIL #Find Right Interval(미들러)

  • -
반응형

 

https://leetcode.com/problems/find-right-interval/description/

import bisect

def findRightInterval(intervals):
    n = len(intervals)
    # 구간의 시작점을 기준으로 정렬합니다.
    start_points = sorted((interval[0], i) for i, interval in enumerate(intervals))
    result = []
    
    for interval in intervals:
        # 현재 구간의 끝점을 기준으로 이진 탐색 수행
        end = interval[1]
        idx = bisect.bisect_left(start_points, (end,))
        
        # 만약 이진 탐색 결과가 리스트 길이보다 작다면, 해당 인덱스의 시작점이 구간의 끝점보다 큽니다.
        if idx < n:
            result.append(start_points[idx][1])
        else:
            result.append(-1)
    
    return result
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.