https://leetcode.com/problems/number-of-recent-calls/description/
여러분은 최근 요청을 기록하고, 지난 3000밀리초(또는 3초) 동안 몇 개의 요청이 있었는지를 세는 클래스를 작성해야 합니다.
클래스 RecentCounter는 다음과 같은 메서드를 가져야 합니다:
- RecentCounter(): 객체를 초기화합니다.
- int ping(int t): 주어진 t(밀리초) 시점에서 요청을 기록하고, 최근 3000밀리초 동안(즉, [t-3000, t] 간격 내) 발생한 모든 요청의 수를 반환합니다.
주의사항:
- 시스템은 millisecond 단위의 시간만 처리합니다.
- 시스템 시간은 증가하지 않을 수 있습니다. 즉, t 값은 순서대로 증가하는 보장이 없으며, 같은 시간이 반복될 수 있습니다.
- ping 메서드는 시간 t가 증가하는 순서대로 호출될 것이라는 보장이 있습니다.
- 모든 시간은 음이 아닌 정수입니다.
- 1초는 1000 밀리초입니다.

풀이
from collections import deque
class RecentCounter:
def __init__(self):
# ping 타임스탬프를 저장할 큐를 초기화
self.queue = deque()
def ping(self, t: int) -> int:
# 새 ping 타임스탬프를 큐에 추가
self.queue.append(t)
# 현재 시간 t에서 3000밀리초 이전의 타임스탬프를 모두 제거
while self.queue and self.queue[0] < t - 3000:
self.queue.popleft()
# 최근 3000밀리초 동안의 ping 수를 반환
return len(self.queue)
# RecentCounter 객체는 아래와 같이 인스턴스화 및 호출
# obj = RecentCounter()
# param_1 = obj.ping(t)
'Algorithm > 릿코드' 카테고리의 다른 글
99클럽 코테 스터디 27일차 682. Baseball Game (0) | 2024.06.26 |
---|---|
99클럽 코테 스터디 26일차 1475. Final Prices With a Special Discount in a Shop (0) | 2024.06.25 |
99클럽 코테 스터디 24일차 1700. Number of Students Unable to Eat Lunch (0) | 2024.06.23 |
99클럽 코테 스터디 23일차 2089. Find Target Indices After Sorting Array 배열 정렬 후 타겟 인덱스 찾기 (0) | 2024.06.21 |
99클럽 코테 스터디 22일차 2733. Neither Minimum nor Maximum (0) | 2024.06.20 |