def solution(topping):
answer = 0
for i in range(len(topping)):
answers = []
answers2 = []
answers.extend(topping[0:i+1])
answers2.extend(topping[i+1:])
a = set(answers)
b = set(answers2)
if len(a) == len(b):
answer += 1
return answer
시간초과가 뜹니다. 어떻게 하면 시간을 줄일 수 있나요? 리스트내포를 두 리스트에 대해서도 할 수 있나요?
answers와 answer2를 매번 초기화 하셔서 그럽니다.
첫 시작에서 answers와 answer2를 만드시고
매 번 answers에 더하고, answer2에서 빼시면서 계산하시면 속도가 많이 빨라지실 것입니다.
투포인터를 생각하시면 이해가 쉽습니다.
윗분 말씀대로 매번 answer와 answer2를 재구성하고, 집합도 재구성하셔서 그런거 같아요.
저 같은 경우에는 최초에 topping을 기준으로 한 집합#1, 비어있는 집합#2을 선언해주고,
topping 에서 하나씩 pop해서 얻어낸 맛을 집합#2에는 add하고 집합#1에서는 조건에 따라 그 맛을 remove해가는 방식으로 구현했습니다.