[Algorithm] 롤케이크 자르기

리쫑·2023년 2월 15일
0

Algorithm

목록 보기
12/16

롤케이크 자르기

🤖문제 : 롤케이크 자르기 Lv2

😎풀이

from collections import Counter

def solution(topping) :
    answer = 0
    
    left_dict, right_dict = dict(Counter(topping[:1])), dict(Counter(topping[1:]))
    left_cnt, right_cnt = len(left_dict), len(right_dict)
    
    for i in range(1, len(topping)) :
        # left_dict, left_cnt 처리
        if topping[i] in left_dict :
            left_dict[topping[i]] += 1
        else :
            left_dict[topping[i]] = 1
            left_cnt += 1
        
        # right_dict, right_cnt 처리
        if right_dict[topping[i]] == 1 :
            del right_dict[topping[i]]
            right_cnt -= 1
        else :
            right_dict[topping[i]] -= 1
            
        if left_cnt == right_cnt :
            answer += 1

    return answer

👩‍🏫접근 방식

  • 누적합 시도 -> 시간 초과
  • 오른쪽에서 왼쪽으로 하나씩 넘겨주며 변경된 부분을 고려해서 연산량을 줄임.
profile
AI, Data Scientist 취업 준비생 입니다. 공부한 내용을 포스팅하고자 합니다. 방문해주셔서 감사합니다

0개의 댓글