반응형
- 알고리즘 분류 : 구현
- 사용 언어 : JAVA
- 문제 요점
- players 배열은 각 시간대별 접속 인원을 의미하며, 한 서버당 수용 가능 인원은 m, 서버 유지 시간은 k
- 매 시간마다 해당 시점에 만료된 서버들을 serverList에서 제거
- 현재 인원을 수용하기 위한 필요한 서버 수를 계산하고, 부족한 만큼 서버를 증설
- 증설된 서버는 time + k 시간까지 유효하므로, 그 시간을 리스트에 기록
- 최종적으로 증설된 서버의 총 개수를 반환
import java.util.*;
public class serverAddCount {
static int answer = 0;
public static void main(String[] args) {
int[] players = {0, 2, 3, 3, 1, 2, 0, 0, 0, 0, 4, 2, 0, 6, 0, 4, 2, 13, 3, 5, 10, 0, 1, 5};
int m = 3;
int k = 5;
System.out.println(solution(players, m, k));
}
public static int solution(int[] players, int m, int k) {
List<Integer> serverList = new ArrayList<>();
for (int time=0; time<24; time++) {
int humanCount = players[time];
// 서버 증설 만료 대상 확인
for (int j=0; j<serverList.size(); ) {
Integer targetServer = serverList.get(j);
if (targetServer == time) {
serverList.remove(targetServer);
} else {
j++;
}
}
// 현재 인원 확인 후 증설
int need = (humanCount/m) - serverList.size();
for (int j=0; j<need; j++) {
serverList.add(time + k);
answer++;
}
}
return answer;
}
}
반응형
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 11047번 : 동전(0) (JAVA) (0) | 2025.05.17 |
---|---|
[PROGRAMMERS] 서버 증설 횟수 (JAVA) (0) | 2025.05.11 |
[BAEKJOON] 13032번 : ABCDE(JAVA) (1) | 2025.05.06 |
[BAEKJOON] 14940번 : 쉬운 최단거리 (JAVA) (1) | 2025.05.05 |
[BAEKJOON] 1063번 : 킹(JAVA) (0) | 2025.05.02 |
반응형
- 알고리즘 분류 : 구현
- 사용 언어 : JAVA
- 문제 요점
- players 배열은 각 시간대별 접속 인원을 의미하며, 한 서버당 수용 가능 인원은 m, 서버 유지 시간은 k
- 매 시간마다 해당 시점에 만료된 서버들을 serverList에서 제거
- 현재 인원을 수용하기 위한 필요한 서버 수를 계산하고, 부족한 만큼 서버를 증설
- 증설된 서버는 time + k 시간까지 유효하므로, 그 시간을 리스트에 기록
- 최종적으로 증설된 서버의 총 개수를 반환
import java.util.*;
public class serverAddCount {
static int answer = 0;
public static void main(String[] args) {
int[] players = {0, 2, 3, 3, 1, 2, 0, 0, 0, 0, 4, 2, 0, 6, 0, 4, 2, 13, 3, 5, 10, 0, 1, 5};
int m = 3;
int k = 5;
System.out.println(solution(players, m, k));
}
public static int solution(int[] players, int m, int k) {
List<Integer> serverList = new ArrayList<>();
for (int time=0; time<24; time++) {
int humanCount = players[time];
// 서버 증설 만료 대상 확인
for (int j=0; j<serverList.size(); ) {
Integer targetServer = serverList.get(j);
if (targetServer == time) {
serverList.remove(targetServer);
} else {
j++;
}
}
// 현재 인원 확인 후 증설
int need = (humanCount/m) - serverList.size();
for (int j=0; j<need; j++) {
serverList.add(time + k);
answer++;
}
}
return answer;
}
}
반응형
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 11047번 : 동전(0) (JAVA) (0) | 2025.05.17 |
---|---|
[PROGRAMMERS] 서버 증설 횟수 (JAVA) (0) | 2025.05.11 |
[BAEKJOON] 13032번 : ABCDE(JAVA) (1) | 2025.05.06 |
[BAEKJOON] 14940번 : 쉬운 최단거리 (JAVA) (1) | 2025.05.05 |
[BAEKJOON] 1063번 : 킹(JAVA) (0) | 2025.05.02 |