import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(); //시험장 개수
long[] arr = new long[n]; //시험장 인원
for (int i = 0; i < n; i++) {
arr[i] = in.nextInt();
}
long b = in.nextInt(); //총감독관 응시자 수
long c = in.nextInt(); //부감독관 응시자 수
//총 감독관은 반드시 한명
long answer = 0;
for (int i = 0; i < n; i++) {
if (arr[i] >= b) {
arr[i] = arr[i] - b;
answer++;
if(arr[i]>0){
answer += arr[i]/c;
if(arr[i]%c>0) answer++;
}
} else {
answer++;
}
}
System.out.print(answer);
}
}
시간 초과
총 감독관은 반드시 1명 필요 -> 총감독관 응시자 수 제외 후 남아 있는 응시자가 있다면 없을 때까지 while문 돌려서 부감독관 수 카운트
-> for문안에서 while문을 돌리는게 시간초과 요소 였던 것 같음.
실패
시간초과 후 while문을 없애고 for문 안에서 총감독관 제외 후 남아 있는 응시자수를 처리.
응시자수 / 부감독관응시자수 값을 더해주고 나머지가 있는 경우 +1 해주는 형식으로 구현.
-> 자료형 오류
출력 값이 최대로 될 경우
B와 C가 모두 1이고, N이 1,000,000이며 모든 A의 값들이 1,000,000 이 경우, 답이 1,000,000,000,000으로 int 범위를 훨씬 넘음.
b와 c의 값을 long으로 변환하여 해결!
JAVA 자료형 범위