프로그래머스/LEVEL 2

주식 가격

GenieLove! 2022. 4. 13. 22:38
728x90
반응형

다시 풀어보았다.

Python - 예전 코드에 비해 3분의 2로 효율성이 단축

dict를 for문으로 돌릴 때 del dict[key]하면 dictionary changed size iteration 오류가 나서 list(dict.items())로 for문을 돌려줘야 된다.

def solution(prices):
    answer = [0] * len(prices)
    price_dict = dict()
    
    for i1, v1 in enumerate(prices):
        get_price_index = price_dict.get(v1)
        for k, v in list(price_dict.items()):
            if k > v1:
                for answer_i in v:
                    answer[answer_i] = i1 - answer_i
                del price_dict[k]
        
        
        if get_price_index:
            price_dict[v1].append(i1)
        else:
            price_dict[v1] = [i1]
    
    for k in price_dict.keys():
        for answer_i in price_dict[k]:
            answer[answer_i] = len(answer) - answer_i - 1

    return answer
728x90
반응형

'프로그래머스 > LEVEL 2' 카테고리의 다른 글

[1차] 캐시  (0) 2022.04.25
[1차] 프렌즈4블록  (0) 2022.04.24
피로도  (0) 2022.04.12
후보키  (0) 2022.02.19
거리두기 확인하기  (0) 2022.02.17