뚜루리 2023. 4. 26. 21:40
728x90
320x100
import collections 

def solution(gems):
    answer = [0, 0]
    sH = collections.defaultdict(int)
    
    # 보석의 종류 (중복제거를 하면 보석의 종류가 나오니까!)
    k = len(set(gems))
    
    lt = 0
    maxL = 10000000
    
    for rt in range(len(gems)):
        sH[gems[rt]] += 1
        while (len(sH) == k ):
            if rt - lt + 1 < maxL:
                maxL = rt - lt + 1
                answer = [lt+1, rt+1]
            sH[gems[lt]] -= 1
            if sH[gems[lt]] == 0:
                del sH[gems[lt]]
            lt += 1
                    
    return answer
728x90
320x100