본문 바로가기

알고리즘

[알고리즘] 프로그래머스 - 롤케이크 자르기(Python)

반응형

문제 설명

알고리즘 고민

처음에는 set을 이용해서 철수와 동생이 먹을 부분의 토핑 종류를 구하는 과정을 반복하여 길이를 비교하려고 했다. 하지만 시간 초과가 발생하였다. 그래서 여러 고민을 해봤는데 결국 해결하지 못했다. 다른 풀이를 보니 Counter를 이용해서 딕셔너리의 개수를 세기도 하고 담겨있는 값을 제거하는 과정을 깔끔하게 해결하였다.

코드

from collections import Counter

def solution(topping):
    dic = Counter(topping)
    set_dic = set()
    res = 0
    for i in topping:
        dic[i] -= 1
        set_dic.add(i)
        if dic[i] == 0:
            dic.pop(i)
        if len(dic) == len(set_dic):
            res += 1
    return res
반응형