본문 바로가기
Problem Solving/삼성 SW 역량 테스트 기출

백준 13458 : 시험 감독

by Libi 2021. 8. 1.
반응형

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

[ 문제풀이 ]

브론즈 2의 난이도답게 정말 쉬운 문제이다. 각 시험장마다 총감독관을 1명 배치하고 남은 응시자 수를 마크할 수 있도록 부감독관을 배치하면 해결할 수 있다.

조심해야 할 점은 정답의 범위이다. 시험장의 개수 100만, 각 시험장에 있는 응시자 수 100만, 총감독관과 부감독관이 응시할 수 있는 수가 1인 최악의 경우 100만 x 100만만큼의 감독관이 필요하기 때문에 long이 아닌 int로 선언한다면 오버플로우가 날것이다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	static StringTokenizer st;

	static int N, B, C;
	static long answer;
	static int[] A;

	public static void main(String[] args) throws IOException {
		N = Integer.parseInt(br.readLine());

		A = new int[N];
		st = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; ++i) {
			A[i] = Integer.parseInt(st.nextToken());
		}

		st = new StringTokenizer(br.readLine());
		B = Integer.parseInt(st.nextToken());
		C = Integer.parseInt(st.nextToken());

		for (int i = 0; i < N; ++i) {
			answer++;
			A[i] -= B;

			if (A[i] > 0) {
				answer += A[i] / C;
				if (A[i] % C != 0) answer++;
			}
		}

		bw.write(answer + "\n");
		bw.flush();bw.close();br.close();
	}
}
반응형

'Problem Solving > 삼성 SW 역량 테스트 기출' 카테고리의 다른 글

백준 14500 : 테트로미노  (0) 2021.08.01
백준 14499 : 주사위 굴리기  (0) 2021.08.01
백준 3190 : 뱀  (0) 2021.08.01
백준 12100 : 2048(Easy)  (0) 2021.08.01
백준 13460 : 구슬 탈출 2  (0) 2021.08.01

댓글