https://school.programmers.co.kr/learn/courses/30/lessons/389479?language=swift
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
단순 구현 문제.
시간대마다 서버가 필요한 배열을 만들어주고 이후에는 증감마다 result에 더해주었다.
나의 답
func solution(_ players:[Int], _ m:Int, _ k:Int) -> Int {
var needServers: [Int] = []
for i in 0..<24 {
let serverCount = players[i] / m
needServers.append(serverCount)
}
var currentServers = Array(repeating: 0, count: 24)
var result = 0
for i in 0..<24 {
// 현재 시간대의 서버수가 필요한 서버보다 적다면,
if currentServers[i] < needServers[i] {
// 생명 주기만큼 필요한 서버수를 더해줌
let addedServer = needServers[i] - currentServers[i]
result += addedServer
for j in 0..<k {
// 인덱스가 플레이어 카운트를 넘어간다면 break
if 24 <= i + j { break }
currentServers[i + j] += addedServer
}
}
}
return result
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 타겟 넘버 - Lv2 (0) | 2025.07.03 |
|---|---|
| [프로그래머스] 더 맵게(힙) - Lv2 (0) | 2023.01.06 |
| [프로그래머스] [3차] 압축(2018 KAKAO BLIND RECRUITMENT) - Lv2 (0) | 2023.01.05 |
| [프로그래머스] 귤 고르기(연습문제) - Lv2 (0) | 2023.01.04 |
| [프로그래머스] k진수에서 소수 개수 구하기(2022 KAKAO BLIND RECRUITMENT) - Lv2 (0) | 2023.01.03 |
댓글