Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

우주에서 글을 적어본다

99클럽 코테 스터디 30일차 TIL + 이분 탐색 본문

항해99 TIL

99클럽 코테 스터디 30일차 TIL + 이분 탐색

우주로 날아간 사람 2024. 8. 20. 22:19

[오늘의 학습 키워드 및 문제]
- 리트코드의 "Find Right Interval" 문제를 풀었다.
- 오늘 주제는 이분 탐색이다. 으아앙

[나의 코드]

from bisect import bisect_left

class Solution:
    def findRightInterval(self, intervals: List[List[int]]) -> List[int]:
        temp = sorted((interval[0], i) for i, interval in enumerate(intervals))
    
        result = []
        for interval in intervals:
            end = interval[1]
        
            idx = bisect_left(temp, (end,))
        
            if idx < len(temp):
                result.append(temp[idx][1])
            else:
                result.append(-1)
    
        return result

코드 짜기가 귀찮아서 그냥 bisect 라이브러리를 공부해서 이걸로 풀었다.
누가 temp 대신 쓸 만한 변수 이름을 알려주십쇼.

일단 intervals 배열의 start를 기준으로 정렬해야 한다는 것을 금방 알 수 있다.
그리고 인덱스를 반환해야 하기 때문에 enumerate로 인덱스도 같이 저장해서 정렬한다.

그리고 end를 기준으로 이분 탐색을 한다.
반환된 인덱스가  temp의 길이보다 작다면 result에 결과를 넣고,
아니라면 -1을 넣는다.

[오늘의 회고]
- 어제랑 문제가 비슷한 것은 기분 탓인가?
- 너무 졸려워잉.
- 점점 TIL이 대충대충 써지고 있다 ㅋㅋㅋㅋㅋㅋㅋ 끝!