-
[프로그래머스] 롤케이크 자르기코테 준비/Stack, Queue 2024. 1. 30. 10:50
처음에는 for 문으로 topping을 돌면서 set의 길이를 비교해서 같을 때 count 하면 된다고 생각했지만 시간 초과함
def solution(topping): answer = 0 for i in range(len(topping)): if len(set(topping[:i]))==len(set(topping[i:])): answer+=1 return answer
시간초과를 줄이려면 딕셔너리 두개를 활용해서 Counter(a) 한 뒤, a에 있는 숫자를 하나씩 빼서 b로 옮기면서 비교해야함.
def solution(topping): answer = 0 a={} b={} for i in topping: # a에 각 숫자 몇개 있는지 다 담기 if i in a: a[i]+=1 else: a[i]=1 for i in topping: if len(a)==len(b): answer+=1 if i not in b: # a에 있는거 b에 하나씩 빼서 담기 b[i]=1 a[i]-=1 if a[i]==0: del a[i] return answer
'코테 준비 > Stack, Queue' 카테고리의 다른 글
[프로그래머스] 스킬트리 (1) 2024.01.30 [프로그래머스] 기능개발 (0) 2023.01.23 [백준] 7662. 이중우선순위큐 (0) 2023.01.13 [프로그래머스] 이중우선순위큐 (0) 2023.01.12 스택. 괄호 열고 닫기 문제 (9012. 괄호) (0) 2022.12.08