728x90
반응형
https://www.acmicpc.net/problem/13458
13458번: 시험 감독
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
www.acmicpc.net
# 주의할 점 - 변수의 범위
int형의 범위는 대략 20억까지 커버된다.
이 문제에서는 시험장의 개수인 N이 100만까지고, 시험장마다의 응시자 수도 100만까지다.
따라서, 총 응시자는 100만 * 100만 > 20억 이고, 총감독관과 부감독관이 1명씩 감독가능한 경우 전체 감독자 수는 int형 범위를 넘게 된다. 따라서 long형 변수가 필요하다.
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(in.readLine()); // 시험장 개수
int[] arr = new int[N]; // 각 시험장마다의 응시자 수
StringTokenizer st = new StringTokenizer(in.readLine(), " ");
for(int i=0;i<N;i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(in.readLine(), " ");
int B = Integer.parseInt(st.nextToken()); // 총감독이 관리가능한 학생 수
int C = Integer.parseInt(st.nextToken()); // 부감독이 관리가능한 학생 수
long total = 0;
for(int i=0;i<N;i++) {
total++;
int remain = arr[i]-B; // 전체 인원 - 총감독관이 감시가능한 인원
if(remain<=0) continue; // 남는 사람이 없으면 부감독관 필요 X
// 부감독관 수
total += remain/C;
if(remain%C != 0) total++;
}
System.out.println(total);
}
}
728x90
반응형
'알고리즘 > 삼성 SW역량테스트 기출' 카테고리의 다른 글
[문제] 백준 17822번 원판 돌리기 (0) | 2021.04.24 |
---|---|
[문제] 백준 3190번 뱀 (0) | 2021.03.09 |