Search

๊น€๋ฏผ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
1500
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
def solution(gems) : answer=[0, len(gems)-1] gem_cnt=len(set(gems)) gem_dic={gems[0]:1} start, end=0, 0 while start<len(gems) and end<len(gems) : if len(gem_dic)==gem_cnt : if (end-start)<answer[1]-answer[0] : answer=[start, end] if gem_dic[gems[start]]==1 : del gem_dic[gems[start]] else: gem_dic[gems[start]]-=1 start+=1 else: end+=1 if end==len(gems): break gem_dic[gems[end]]=gem_dic.get(gems[end], 0)+1 answer[0]+=1 answer[1]+=1 return answer
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
gem_cnt : ๋ณด์„ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜
gem_dic : ์„ ํƒํ•œ ๊ตฌ๊ฐ„์— ์žˆ๋Š” ๋ณด์„ ์ข…๋ฅ˜์™€ ํ•ด๋‹น ๋ณด์„์˜ ๊ฐœ์ˆ˜
1.
answer ๋ฆฌ์ŠคํŠธ์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์ „์ฒด ๊ตฌ๊ฐ„์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
2.
gem_dic์˜ ๊ธธ์ด๊ฐ€ ๋ณด์„ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์œผ๋ฉด ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ณด์„์„ ๋‹ค ๊ฐ–๊ณ  ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.
a.
ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๊ธธ์ด๊ฐ€ answer๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ฐ’์„ ๊ฐฑ์‹ ํ•ด์ค€๋‹ค.
b.
์ตœ์†Œ๊ตฌ๊ฐ„์„ ์ฐพ๊ธฐ ์œ„ํ•ด start๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์ „์— gem_dic์— start ์œ„์น˜์˜ ๋ณด์„์„ ํ•˜๋‚˜ ๋นผ์ค€๋‹ค
3.
gem_dic์˜ ๊ธธ์ด๊ฐ€ ๋ณด์„ ์ข…๋ฅ˜์™€ ๋‹ค๋ฅด๋ฉด ๋” ํฐ ๊ตฌ๊ฐ„์„ ํ™•์ธํ•ด์•ผํ•˜๋ฏ€๋กœ end๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค,
a.
์ด๋•Œ end๊ฐ€ gems ๋ฒ”์œ„ ๋ฐ–์ด๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค.
b.
end ์œ„์น˜์˜ ๋ณด์„์„ gem_dic์—์„œ 1 ์ฆ๊ฐ€์‹œ์ผœ์•ผํ•œ๋‹ค.
4.
2~3๋ฒˆ์„ start์™€ end๊ฐ€ gems ๋ฆฌ์ŠคํŠธ ๋ฒ”์œ„ ์•ˆ์— ์žˆ์œผ๋ฉด ๊ณ„์† ๋ฐ˜๋ณตํ•œ๋‹ค.
5.
๊ตฌ๊ฐ„์€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผํ•˜๋ฏ€๋กœ 1์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค.