반응형
https://programmers.co.kr/learn/courses/30/lessons/67258?language=python3
코딩테스트 연습 - 보석 쇼핑
["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7]
programmers.co.kr
내가 한 풀이
def solution(gems):
answer = []
start,end=0,0
short=len(gems)+1
category=len(set(gems))
bag={}
while end<len(gems):
if gems[end] not in bag:
bag[gems[end]]=1
else:
bag[gems[end]]+=1
end+=1
if len(bag)==category:
while start<end:
if bag[gems[start]]>1:
bag[gems[start]]-=1
start+=1
elif short>end-start:
short=end-start
answer=[start+1,end]
break
else:
break
return answer
투포인터 알고리즘을 이용해 배열의 처음부터 끝까지 탐색하도록 구현했다.
'코테 공부' 카테고리의 다른 글
프로그래머스 등굣길 비트 (파이썬 풀이) (0) | 2021.12.07 |
---|---|
프로그래머스 2개 이하로 다른 비트 (파이썬 풀이) (0) | 2021.12.03 |
프로그래머스 이중우선순위큐 (파이썬 풀이) (0) | 2021.11.30 |
프로그래머스 괄호 회전하기 (파이썬 풀이) (0) | 2021.11.28 |
백준 [7576] 토마토 (파이썬 풀이) (0) | 2021.11.24 |