cmod.ify

[30804] 과일 탕후루 본문

BASIC/코딩테스트

[30804] 과일 탕후루

modifyC 2025. 12. 30. 18:12
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