[프로그래머스] 서버 증설 - Lv2

    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
    }

    댓글