[프로그래머스] 롤케이크 자르기

최동혁·2022년 12월 9일
0

프로그래머스

목록 보기
21/68

풀이 방법

  1. 전체 토핑을 딕셔너리로 만든다.
  2. 토핑을 하나씩 지나갈때마다 전체 토핑 딕셔너리에서 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
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글