삼성 기출문제집 리스트에 있는 시험감독 문제를 풀어 보았다.
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
정답률이 25%대로 낮은 편인데, 막상 풀어보면 그렇게 난이도가 높은 문제는 아니다.
각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
-> 일단 시험장에는 총 감독관은 무조건 1명 있어야 함
그러면 총 감독관이 관리할 수 있는 인원보다 큰 방이 아닌 경우는 총 감독관만 있으면 되고,
그렇지 않은 경우는 그 방의 인원 - 총감독관이 관리할 수 있는 인원을 우선 빼주고 부 감독관이 몇 명 들어갈 지를 정하면 된다.
코드는 다음과 같이 Java로 구현하였다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
import java.util.StringTokenizer; | |
/** | |
* | |
* @author kora1492 | |
*/ | |
public class BOJ_13458 { | |
static int N; | |
static int examRoom[]; | |
static int b, c; | |
public static void main(String[] args) throws NumberFormatException, IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
N = Integer.parseInt(br.readLine()); | |
examRoom = new int [N+1]; | |
StringTokenizer st = new StringTokenizer(br.readLine(), " "); | |
for(int i=1;i<=N;i++){ | |
examRoom[i] = Integer.parseInt(st.nextToken()); | |
} | |
st = new StringTokenizer(br.readLine(), " "); | |
b = Integer.parseInt(st.nextToken()); | |
c = Integer.parseInt(st.nextToken()); | |
long sum= 0; | |
for(int i=1;i<=N;i++){ | |
if(examRoom[i] - b <=0){ | |
sum++; // 총감독관 한명으로 감독 가능 | |
} else { | |
examRoom[i] -= b; // 총 감독관이 들어가고 감독해야 할 인원 | |
// 나누어 떨어지는 경우 | |
if(examRoom[i] % c == 0){ | |
sum += 1 + examRoom[i] / c; | |
} else { | |
// 나누어 떨어지지 않기 때문에 부 감독관이 한명 더 들어가야 함. | |
sum += 2 + examRoom[i] / c; | |
} | |
} | |
} | |
System.out.println(sum); | |
} | |
} |
'알고리즘' 카테고리의 다른 글
백준 15686 (BOJ 15686) 치킨배달 - JAVA (0) | 2020.03.03 |
---|---|
백준 14502 연구소 - JAVA (0) | 2020.03.02 |
[JAVA 백준 16236] - 아기상어 (0) | 2020.02.27 |
[삼성 SW 역량 테스트 기출 문제집] 백준 3190 뱀 (0) | 2020.02.26 |
[삼성 SW 역량 테스트 기출 문제집] 백준 17144 미세먼지 안녕! (0) | 2020.02.25 |