https://school.programmers.co.kr/learn/courses/30/lessons/389479
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 기본적으로 서버1대가 있고, 사용자가 m명 늘어날때마다 서버 1대를 증설해야 한다. 증설한 서버는 k시간동안 유지된다.
(m이 3이면 0~2명일때는 1대, 3 ~ 5명일때는 2대, 6 ~ 8명일때는 3대가 필요하다. )
2. 하루동안 시간별 사용자수와 m(최대 사용자수), k(서버 지속 시간)이 주어질 때 서버 증설 횟수를 구하라.
1. 시간별 서버수를 배열로 관리한다.
2. 만약 현재 사용자수가 감당가능한 사용자수를 넘으면 서버를 증설한다.
def solution(시간별사용자수, 서버당최대사용자수, 서버지속시간):
서버증설횟수 = 0
시간별서버수 = [1] * 24
for h in range(24):
현재사용자수 = 시간별사용자수[h]
현재서버수 = 시간별서버수[h]
필요한서버수 = 현재사용자수 // 서버당최대사용자수 + 1
증설해야하는서버수 = 필요한서버수 - 현재서버수
if 증설해야하는서버수 > 0:
for i in range(h, h + 서버지속시간):
if i < 24:
시간별서버수[i] += 증설해야하는서버수
서버증설횟수 += 증설해야하는서버수
return 서버증설횟수
[프로그래머스] 389481. 봉인된 주문 | Python3, Level3, 수학 (0) | 2025.04.17 |
---|---|
[프로그래머스] 388353. 지게차와 크레인 | Python3, Level2, BFS (0) | 2025.04.16 |
[프로그래머스] 388351. 유연근무제 | Python3, Level1, 단순 구현 (0) | 2025.04.14 |
[프로그래머스] 389478. 택배 상자 꺼내기 | 파이썬3, 구현 (1) | 2025.04.14 |
[프로그래머스] 301651. 멸종위기의 대장균 찾기 | MySQL, 재귀 쿼리 (0) | 2025.04.10 |