풀이 방법
- 전체 토핑을 딕셔너리로 만든다.
- 토핑을 하나씩 지나갈때마다 전체 토핑 딕셔너리에서 1개씩 빼주고 brother 딕셔너리에 추가해준다.
2.1 만약 전체 토핑에서 뺏을 때 0인 경우 삭제시켜준다.
2.2 전체 토핑의 길이와 brother 딕셔너리의 길이가 같다면 서로 종류의 갯수가 같은것이기 때문에 공평한 분배이므로 answer를 1 증가시켜준다.
풀이 코드
from collections import Counter
def solution(topping):
answer = 0
total_dic = dict(Counter(topping))
brother_dic = dict()
for i in range(len(topping)):
if topping[i] not in brother_dic:
brother_dic[topping[i]] = 1
total_dic[topping[i]] -= 1
if total_dic[topping[i]] == 0:
del total_dic[topping[i]]
if len(brother_dic) == len(total_dic):
answer += 1
return answer