[programmers] 보석 쇼핑 (2020 카카오 인턴십)

resilient

·

2021. 9. 3. 23:48

728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/67258#

 

코딩테스트 연습 - 보석 쇼핑

["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7]

programmers.co.kr

def solution(gems):
    length = len(set(gems)) 
    gem_length = len(gems)
    start = 0 
    end = 0
    temp = [0, gem_length]
    dic = {gems[0] : 1}
    while start < gem_length and end < gem_length:
        print(dic)
        if len(dic) == length:
            if end-start < temp[1] -temp[0]:
                temp = [start, end]

            if dic[gems[start]] == 1:
                del dic[gems[start]]
            else:
                dic[gems[start]] -= 1
            start += 1
        else:
            end += 1
            if end == gem_length:
                break
            if gems[end] in dic.keys():
                dic[gems[end]] += 1
            else:
                dic[gems[end]] = 1

    return [temp[0]+1,temp[1]+1]
반응형