
https://school.programmers.co.kr/learn/courses/30/lessons/389479
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
Lv2라고 하는데 굉장히 간단한 문제입니다.
서버의 최소 증설 횟수를 알아야하는데 배열 범위안에서 간단한 사칙연산을 통해 계산해 구할 수 있습니다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> players, int m, int k) {
int time = players.size();
vector<int> servercnt(time, 0);
int answer = 0;
for (int i = 0; i < time; ++i)
{
int required_server = players[i] / m;
if (servercnt[i] < required_server)
{
int add = required_server - servercnt[i];
answer += add;
for (int j = i; j < i + k; ++j)
{
if (j >= time)
break;
servercnt[j] += add;
}
}
}
return answer;
}
실수할만한 요소는 배열의 범위를 넘거나, 나누기를 잘못하는 것인데
해당 문제는 그것도 안하도록 배려한 문제라고 봅니다.
'Algorithm > PS' 카테고리의 다른 글
| [1일 1알고] 유연 근무제 (0) | 2026.04.24 |
|---|---|
| [1일 1알고] 완전 범죄 (0) | 2026.04.22 |
| [1일 1알고] 노란불 신호등 (1) | 2026.04.21 |
| [1일 1알고] 특정 형질을 가지는 대장균 찾기 (0) | 2026.04.20 |
| [1일 1알고] [PCCE 기출문제] 1번 / 문자 출력 (0) | 2026.04.18 |