https://programmers.co.kr/learn/courses/30/lessons/67258
def solution(gems):
answer = [-1, len(gems)]
total = len(set(gems))
count = {gems[0]: 1}
s, e = 0, 0
while True:
# 모두 포함
if len(count) == total:
if answer[1] - answer[0] > e - s:
answer[1] = e + 1
answer[0] = s + 1
if s == len(gems):
break
count[gems[s]] -= 1
if count[gems[s]] == 0:
del count[gems[s]]
s += 1
# 모두 포함 X
else:
if e+1 == len(gems):
break
if gems[e+1] in count:
count[gems[e+1]] += 1
else:
count[gems[e+1]] = 1
e += 1
return answer