코딩테스트/프로그래머스

[프로그래머스][구현] 서버 증설 횟수

박소민 2025. 10. 3. 20:21
서버 증설 횟수
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

  • 내 풀이
    • 이미 서버 1개가 돌고 있으므로 3명 부터 → 1개 추가 증설
    • 해당 인원을 위해 필요한 서버 수 : need (기본 1개 제외하고)
    • 현재 이용가능한 서버 수 = len(servers)
    • 현재 추가로 증설해야 하는 서버 수: plus
    •  📍주의
      • 0~1 시 → idx =0
      • 10~15시 사용가능한 서버 → idx=14 (14~15시) 까지만 이용 가능
      • 그러므로 bisect으로 같은 값까지 포함해서 자르게 하려면 servers에 idx값에 맞춰 넣어줘야함
      • => idx+k-1 (10+5-1 =14)
from bisect import bisect_left

def solution(players, m, k):
    answer=0
    servers=[]
    
    for idx, player in enumerate(players):
        i=bisect_left(servers, idx)
        if i!=0:
            servers=servers[i:]
        
        if player<m:
            continue
            
        need=player//m
        if need>len(servers):
            plus=need-len(servers)
            answer+=plus 
            servers+=[idx+k-1 for _ in range(plus)]
        
    return answer