FruitIntoBaskets
Published at 2022-08-05
class Solution:
def totalFruit(self, fruits: List[int]) -> int:
l = 0
cnt = 0
basket = defaultdict(int) # 과일별 개수 저장
for i, fruit in enumerate(fruits):
basket[fruit] += 1 # 개수 증가시키고
# 바구니에 3종류 이상이면
while len(basket) >= 3:
firstFruit = fruits[l] # 제일 처음 담은 과일을
basket[firstFruit] -= 1 # 빼줌
if basket[firstFruit] == 0: # 해당과일을 다 뺐다?
basket.pop(firstFruit) # 빈 바구니 아예 제거
l += 1 # 다음번엔 다음과일 검사하기 위해
cnt = max(cnt, i-l+1)
return cnt