https://school.programmers.co.kr/learn/courses/30/lessons/389479
def solution(players, m, k):
answer = 0 # 총 추가한 서버의 수를 누적할 변수
server_down_time = [0] * 24 # 각 시간별로 꺼질 서버 수를 기록하는 배열
cur_server = 0 # 현재 운영 중인 서버 수
for cur in range(0, 24): # 0시부터 23시까지 반복
cur_server -= server_down_time[cur] # 현재 시간에 만료되어 꺼진 서버 수 반영 (감소)
needs_server = players[cur] // m # 현재 시간에 필요한 서버 수 계산
if cur_server < needs_server: # 현재 서버 수가 부족하다면
added_server = needs_server - cur_server # 부족한 만큼 서버 추가
answer += added_server # 총 추가 서버 수에 반영
cur_server = needs_server # 현재 서버 수 업데이트
if (cur + k < 24): # 추가한 서버가 꺼질 시각이 24시 이전이면
server_down_time[cur + k] = added_server # 해당 시각에 서버가 꺼진다고 기록
return answer # 총 추가된 서버 수 반환
오늘 문제는 단순 구현 문제여서 시행착오했던 부분은 없었다. 하지만 최근 문제들이 좀 어려운 알고리즘 문제를 풀다보니 지레 쫄아서 뭔가 숨겨진 케이스가 있지 않을까 하는 의심이 들었었다;;