function solution(players, m, k) {
let answer = 0;
let server = [];
for(const player of players){
server.forEach((val, idx) => server[idx]--);
server = server.filter(val => val > 0);
const available_players = server.length * m + m - 1;
if(player > available_players) {
let temp = available_players;
while(temp < player){
server.push(k);
temp += m;
answer++;
}
}
}
return answer;
}
def solution(players, m, k):
answer = 0
server = []
for player in players:
server = [val - 1 for val in server]
server = [val for val in server if val > 0]
available_players = len(server) * m + m - 1
if player > available_players:
temp = available_players
while temp < player:
temp += m
server.append(k)
answer += 1
return answer
Level2의 문제 치고는 쉬운 편이다.
시간을 돌면서 플레이어와 수용 가능한 플레이어의 수를 비교한 다음,
서버를 추가해야할 경우라면 while 문을 통해 서버를 추가해주고 카운팅을 한다.
이후 for문을 돌면서 서버의 시간을 1씩 줄여주고 0이 되면 배열에서 없애준다.
server = [val - 1 for val in server]
server = [val for val in server if val > 0]
위 방법을 통해서 서버에 새로운 배열을 만들어 줄 수 있다.