cmod.ify
[30804] 과일 탕후루 본문
728x90
반응형
많이 취약했던 문제인 것 같다
과일을 왼쪽에서 부터 일단 뺀다(pop)
그리고 뺀 과일 종류의 개수를 센다(fruit)
현재 과일 종류를 몇개 가지고 있는지 센다 (cur_f)
두 종류가 넘으면 왼쪽에서부터 뺀다(종류 개수도 빼야 함)
위 과정을 진행하면서 제일 많이 가지고 있던 과일의 수를 기억한다(answer)
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
tanghuru = list(map(int, input().strip().split()))
q = deque()
fruit = [0 for _ in range(10)]
cur_f = 0
answer = 0
for f in tanghuru:
q.append(f)
if fruit[f] == 0:
cur_f += 1
fruit[f] += 1
while cur_f > 2:
out_f = q.popleft()
fruit[out_f] -= 1
if fruit[out_f] == 0:
cur_f -= 1
answer = max(answer, len(q))
print(answer)
728x90
반응형
'BASIC > 코딩테스트' 카테고리의 다른 글
| [2178] 미로 탐색 (0) | 2026.01.05 |
|---|---|
| [1389] 케빈 베이컨의 6단계 법칙 (0) | 2025.12.31 |
| [14940] 쉬운 최단거리 (1) | 2025.12.30 |
| [21736] 헌내기는 친구가 필요해 (0) | 2025.12.29 |
| [18870] 좌표 압축 (0) | 2025.12.26 |