https://school.programmers.co.kr/learn/courses/30/lessons/389479
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드 & 풀이
def solution(players, m, k):
answer = 0
size = len(players)
servers = [0] * size
def server_expansion(need_server, start):
for idx in range(k):
if start + idx < size:
servers[start + idx] += need_server
for idx, player in enumerate(players):
if player >= m:
need_server = (player // m) - servers[idx]
if need_server > 0:
server_expansion(need_server, idx)
answer += need_server
return answer
그냥 서버 확장이 필요하면
필요한 수만큼 더하면서 기록해주고
그 필요한 수를 더해가면 답이 나옴
def solution(players, m, k):
answer = 0
servers = [0] * (len(players) + k)
now_max = m
for i, p in enumerate(players):
now_max -= servers[i] * m # 현재 시점에서 소멸되는 서버 반영
if now_max < p:
add_servers = (p - now_max + m - 1) // m
answer += add_servers
now_max += add_servers * m
servers[i + k] += add_servers # k 이후에 서버가 소멸되도록 설정
return answer
현재 시점에서 소멸되는 서버를 계산하면서
서버 확장이 필요한지 확인
이후 k 시간 이후 서버가 소멸되도록 기록 후 진행
728x90
'프로그래머스 > Lv.2' 카테고리의 다른 글
올바른 괄호 - C++, Stack (0) | 2025.02.22 |
---|---|
기능 개발 - C++, Queue (0) | 2025.02.22 |
2025 프로그래머스 코드챌린지 1차 예선 > 비밀 코드 해독 - Python, Combinations, & 연산 (0) | 2025.02.14 |
2025 프로그래머스 코드챌린지 1차 예선 > 지게차와 크레인 - Python, BFS (0) | 2025.02.12 |
2018 KAKAO BLIND RECRUITMENT > 파일명 정렬 - Python, 정규식 (1) | 2025.01.07 |