공부/C++
[C++] 프로그래머스 서버 증설 횟수
굴러다니다니
2025. 5. 20. 11:17
좀 더럽게 푼 거 같다
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> players, int m, int k) {
int answer = 0;
vector<int> remainServer;
for(int i = 0; i < players.size(); i++){
if(players[i]/m<1) { //지금 이용자수 0
if(remainServer.size() > 0) remainServer.erase(remainServer.begin()); //남은 서버 있으면 하나 빼기
continue;
}
if (remainServer.size() < 1){ //남은 서버 배열이 없으면
answer += players[i]/m;
for(int j = 0; j < k; j++){
remainServer.push_back(players[i]/m);
}
}
else { //남은 서버 배열 있을때
if(players[i]/m > remainServer[0]){
int currentCount = remainServer.size();
int count= players[i]/m - remainServer[0];
answer += count;
for(int j = 0; j < currentCount; j++){
remainServer[j] += count;
}
for (int j = 0; j < k - currentCount; j++){
remainServer.push_back(count);
}
}
}
if (remainServer.size() > 0) remainServer.erase(remainServer.begin()); // 첫 번째 원소 제거
}
return answer;
}
728x90
반응형