Algorithm/NeetCode

[NeetCode/Python] Meeting Schedule

빵빵0 2024. 10. 2. 02:21

문제 링크: https://neetcode.io/problems/meeting-schedule

 

NeetCode

 

neetcode.io

 

[내 풀이]

"""
Definition of Interval:
class Interval(object):
    def __init__(self, start, end):
        self.start = start
        self.end = end
"""

class Solution:
    def canAttendMeetings(self, intervals: List[Interval]) -> bool:
        intervals.sort(key=lambda x: x.start)
        
        for i in range(len(intervals) - 1):
            current = intervals[i]
            now = intervals[i + 1]
            
            if current.end > now.start:
                return False
                
        return True

 

intervals 리스트 개수가 500개까지라서 가능한 풀이 같다.

사실 for를 안쓰고 싶었는데 어떻게... 풀 방법이 없더라.

근데 다 풀고 솔루션을 봤는데 나랑 풀이가 똑같아서 안심했다ㅋㅋㅋㅋ

다른점이 있다면 인덱스를 (1, len(intervals))로 두고, i + 1대신 i - 1을 썼다는 점이다. (즉, 이후 값이 아니라 이전 값을 현재 인덱스 값과 비교함)

 

 

시간 복잡도

 O(n)

n은 리스트의 길이