Jun's Development Journey
[BOJ] 13458번 시험 감독 본문
문제
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) 주의할 점
- int 자료형의 범위는 20억 정도까지이다.
- B=1, C=1, N=1,000,000, Ai=1,000,000 일 경우 cnt는 백만 X 백만 = 1조가 되어 범위를 넘어간다.
- cnt 변수형을 int로 하면 범위를 넘어가므로 long 타입으로 선언하여 구현해야한다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;
import java.util.StringTokenizer;
import java.util.Map.*;
public class BOJ_13458 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] classes = new int[N];
st = new StringTokenizer(br.readLine());
for(int i=0;i<N;i++)
classes[i] = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int B = Integer.parseInt(st.nextToken()), C = Integer.parseInt(st.nextToken());
//총감독관 들어가는 경우
long cnt = N;
for(int i=0;i<N;i++){
if(classes[i]-B>0){
int tmp = (classes[i]-B)%C;
if(tmp==0)
cnt+=((classes[i]-B)/C);
else
cnt+=((classes[i]-B)/C +1);
}
}
System.out.println(cnt);
}
}
'BOJ > Implement' 카테고리의 다른 글
[BOJ] 3985번 롤 케이크 (0) | 2021.05.25 |
---|---|
[BOJ] 17827번 달팽이 리스트 (0) | 2021.05.12 |
[BOJ] 20055번 컨베이어 벨트 위의 로봇 (0) | 2021.04.15 |