K
KRYFT Problem Bank
백엔드 보통 코딩

Rate Limiter 구현

Token Bucket 알고리즘을 사용한 Rate Limiter 구현

30분
100점
#3632

문제 설명

API 요청 제한을 위한 Rate Limiter를 Token Bucket 알고리즘으로 구현하세요.

Token Bucket 알고리즘

  • 버킷에 최대 N개의 토큰을 저장할 수 있음
  • 매 초마다 R개의 토큰이 추가됨
  • 요청 시 토큰이 있으면 1개 소비하고 허용
  • 토큰이 없으면 요청 거부

클래스 인터페이스

class RateLimiter:
    def __init__(self, capacity, refill_rate):
        # capacity: 버킷 최대 용량
        # refill_rate: 초당 토큰 추가 개수
        pass

    def allow_request(self, timestamp):
        # timestamp: 현재 시간 (초 단위)
        # 요청 허용 시 True, 거부 시 False 반환
        pass

제약 조건

  • 1 ≤ capacity ≤ 1000
  • 1 ≤ refill_rate ≤ 100
  • timestamp는 단조 증가

힌트

실행 버튼을 눌러 코드를 실행하세요.