알고리즘/구현
[백준 13458] 시험감독 / 자바 /그리드
순원이
2024. 7. 3. 16:39
문제
레벨: B2
알고리즘: 구현
풀이시간: 10분
힌트 참조 유무: 무
https://www.acmicpc.net/problem/13458
1 번째 시도
삼성SW역량테스트인데도 말도 안되게 쉬워 푸는 내내 경계했다. 그러나 쉬운 문제가 맞았다.
단 주의해야 하는 건 입력값이다. 입력값의 최대값을 생각해보자.
B =1, C= 1, 시험장의 개수 1,000,000 x 응시자수 1,000,000 = 1,000,000,000,000 1조이기 때문에 ans를 int형으로 쓰면 틀린다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] s = br.readLine().split(" ");
int[] students = new int[N];
for (int i = 0; i < N; i++) {
students[i] = Integer.parseInt(s[i]);
}
String[] s2 = br.readLine().split(" ");
int B = Integer.parseInt(s2[0]);
int C = Integer.parseInt(s2[1]);
long ans = 0;
for (int i = 0; i < N; i++) {
int mod = students[i] - B;
ans++;
if (mod > 0) {
if (mod % C == 0)
ans += mod / C;
else {
ans += mod / C + 1;
}
}
}
System.out.println(ans);
}
}