문제풀이/기타
[파이썬] [Two] Pro 보석 쇼핑
승무_
2022. 2. 22. 09:33
문제
https://programmers.co.kr/learn/courses/30/lessons/67258?language=python3
코딩테스트 연습 - 보석 쇼핑
["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7]
programmers.co.kr
코드
import sys
from collections import defaultdict
def solution(gems):
s1=set(gems)
answer=[0,len(gems)]
start,end=0,0
dict=defaultdict(int)
while end<len(gems):
dict[gems[end]]+=1
end+=1
if len(dict)==len(s1):
while start<end:
//최소 1개를 유지해야 하므로 1개 이면 break
if dict[gems[start]]<2:
break
dict[gems[start]]-=1
start+=1
if answer[1] + 1 - answer[0] > end - start:
answer = [start + 1, end]
return answer