전공공부
[BOJ 13458] 시험 감독 본문
확실히 문제 자체는 쉬웠으나 자료형 체크가 필요했던 문제이다.
B 감독관이 볼 수 있는 학생 수 1, C 감독관이 볼 수 있는 학생 수 1 이고 나머지 시험장의 갯수가 10만개, 응시자 수 10만개면
100000*100000을 보아야 하는데 이때의 볼 수 있는 최소한의 감독관의 수는 어마어마하게 큰 수가 된다.
따라서 ans를 넣을 변수를 long으로 설정하자
package DFS;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* BOJ_13458
*/
public class BOJ_13458 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
List<Integer> A = new ArrayList<>();
for(int i = 0; i < N; i++){
A.add(sc.nextInt());
}
int B = sc.nextInt();
int C = sc.nextInt();
int temp = 0;
long ans = 0;
for(int i = 0; i < N; i++){
temp=A.get(i)-B;
ans++;
if(temp <= 0){
continue;
}else{
if(temp/C > 0){
ans += temp/C;
if(temp%C == 0){
continue;
}else{
ans++;
}
}else{
ans++;
}
}
}
System.out.println(ans);
}
}
문제 링크 : 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
'Study > Problem Solving' 카테고리의 다른 글
[PROGRAMMERS] 숫자 변환하기 (0) | 2023.05.01 |
---|---|
[PROGRAMMERS] 요격 시스템 (0) | 2023.04.30 |
[PROGRAMMERS]연속된 부분 수열의 합 (0) | 2023.04.14 |
[BOJ 14501] 퇴사 (0) | 2023.03.29 |
[Programmers] 뒤에 있는 큰 수 찾기 (0) | 2023.02.07 |