class SummaryRanges:

    def __init__(self):
        self.visit = [0 for _ in range(10003)]

    def addNum(self, value: int) -> None:
        self.visit[value] = 1

    def getIntervals(self) -> List[List[int]]:
        start = 0
        ans = []
        while start <= 10001:
            if self.visit[start] == 0:
                while start <= 10001 and self.visit[start] == 0:
                    start += 1
            if self.visit[start] == 1:
                cnt = 0
                while self.visit[start + cnt] == 1:
                    cnt += 1
                ans.append([start, start+cnt-1])
                start += cnt
        return ans


아 이번에는 좀 부끄럽다. 고민하다가 일단 넣어봤는데 이게 되네 ㅅㅂ;

최악의 케이스인 [1,1],[3,3],[5,5],[7,7], ... 같은걸 생각해보면 getInterval이 O(N)일거 같길래..

릿코드는 일단 나이브도 통과시켜주고 최적화를 더 할 여지가 있는 문제가 많은거 같아