class Solution:
def totalFruit(self, fruits: List[int]) -> int:
ans, n = 1, len(fruits)
cur, back = 1, 0
cnt = [(fruits[0], 0)]
while cur < n:
if fruits[cur] == fruits[cur-1]:
cur += 1
elif len(cnt) == 1 and fruits[cur] != cnt[0][0]:
cnt.append((fruits[cur], cur))
back = cur
cur += 1
elif fruits[cur] == cnt[0][0]:
cnt.append(cnt[0])
del cnt[0]
back = cur
cur += 1
elif fruits[cur] == cnt[1][0]:
back = cur
cur += 1
elif fruits[cur] not in [cnt[0][0], cnt[1][0]]:
ans = max(ans, cur - min(cnt[0][1], cnt[1][1]))
del cnt[0]
cnt[0] = (cnt[0][0], back)
cur = back
return max(ans, cur - min(cnt[0][1], cnt[1][1])) if len(cnt) == 2 else n
와 오늘 문제 진짜 안 풀리네...
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.