주어진 리스트가 있을 때 해당 숫자가 동일하게 들어가도록 두 개를 나누는 문제다. 케이크가 어쩌고 저쩌고 했지만, 핵심은 바로 저거다
딕셔너리를 사용해서 일단 토핑의 수를 다 센 다음에 하나씩 값을 옮겨가며 빼주면 되겠다고 생각했다.
위 처럼 해줬는데, 3에서 2차원 반복문을 쓰니 자꾸만 시간 초과가 났다.
아마 2차원 반복문이 문제일 거라 생각하고 b에서 값을 삭제할 때 del을 사용했다. 그러니까 통과됐다!
from collections import Counter
def solution(topping):
answer = 0
b = Counter(topping)
a = {}
index = 0
for i in range(0, len(topping)):
top = topping[i]
if top in a:
a[top] = a[top] + 1
else:
a[top] = 1
b[top] = b[top] - 1
if b[top] == 0:
del b[top]
if len(a) == len(b):
answer += 1
return answer