Development Logs/Algorithms
[JAVA] 백준 13458번 : 시험 감독 (삼성 SW 역량 테스트 기출 문제)
유뱅유뱅뱅
2020. 8. 6. 22:17
반응형
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
문제
해결 방안
문제를 이해하고 단순히 구현하는 문제이다.
1. 총 감독은 시험장마다 1명씩 있어서 시험자 응시자 수 배열 a[]에서 b(총감독이 맡을 수 있는 응시자 수)만큼 다 빼주고 cnt++해주고 시작하였다.
2. b만큼 빼준 a[i] 값이 0보다 작거나 같으면 부감독이 필요없으므로 continue 해줬다.
3. 그렇지 않는 경우 a[i]를 c(부감독이 맡을 수 있는 응시자 수)로 나눠주고 몫을 cnt에 더해줬다.
4. a[i]를 c로 나누었을 때 나머지 값이 0보다 큰 경우 부 감독이 한명 더 필요하므로 cnt++를 해줫다.
코드
import java.util.Scanner;
// 시험 감독
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int n = input.nextInt();
long cnt = 0; // 감독관 수
int[] a = new int[n]; // 응시자 수
for(int i=0; i<n; i++) {
a[i] = input.nextInt();
}
int b = input.nextInt(); // 총감독이 맡을 수 있는 사람수
int c = input.nextInt(); // 부감독이 맡을 수 있는 사람수
for(int i=0; i<n; i++) {
a[i]-=b;
cnt++;
// 총 감독이 맡을 수 있는 경우는 부감독 필요 없으므로 넘어감
if(a[i]<=0) {
continue;
}
// 부감독이 추가로 필요한 경우
else {
cnt += a[i]/c;
// 나머지가 0보다 크면 부감독 한명 더 추가
if(a[i]%c > 0) {
cnt++;
}
}
}
System.out.println(cnt);
}
}
반응형