기본적인 자료구조 중 하나인 "집합"을 가져다 쓰면 풀리는 문제였다.
다만, 매번 집합을 새로 생성하면 시간 초과에 걸리니 2개의 집합(철수와 동생)을 만들어놓고 추가/소거 하는 방식으로 풀어야 한다.
def check(lst,i):
if len(set(lst[:i])) == len(set(lst[i:])):
return True
return False
def solution(topping):
answer = 0
for i in range(1,len(topping)):
if check(topping,i):
answer += 1
return answer
from collections import Counter
def solution(topping):
answer = 0
tmp1 = Counter(topping)
tmp2 = set()
for i in topping:
tmp1[i] -= 1
if not tmp1[i]:
del tmp1[i]
tmp2.add(i)
if len(tmp1) == len(tmp2):
answer += 1
return answer