1. - 값조심
2. 반복문으로 처리할시 시간초과 조심
3. 첫 제출전에 시간초과가 날거라는거를 알았고
4. 두 번째 제출전에 - 값이 나올 수 있다는걸 (총 학생수가 - ) 알았다.
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.util.*; | |
import java.io.*; | |
/** | |
* https://www.acmicpc.net/problem/13458 | |
* BOJ 백준온라인져지 13458 시험 감독 풀이 | |
*/ | |
public class Main { | |
public static void main(String[] args) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
int N = Integer.parseInt(br.readLine()); | |
String str1[] = br.readLine().split(" "); | |
int arr[] = new int[N]; | |
for (int i = 0; i < N; i++) { | |
arr[i] = Integer.parseInt(str1[i]); | |
} | |
String str2[] = br.readLine().split(" "); | |
int main = Integer.parseInt(str2[0]); | |
int support = Integer.parseInt(str2[1]); | |
long result = 0; | |
for (int i = 0; i < N; i++) { | |
result++; | |
arr[i] -= main; | |
if (arr[i] > 0) result += (arr[i] / support) + (arr[i] % support > 0 ? 1 : 0); | |
} | |
bw.write(String.valueOf(result)); | |
bw.flush(); | |
} | |
} |
문제
총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다.
감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 방에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 방에서 감시할 수 있는 응시자의 수가 C명이다.
각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.
각 시험장마다 응시생들을 모두 감시해야 한다. 이 때, 필요한 감독관 수의 최소값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.
셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
출력
각 시험장마다 응시생을 모두 감독하기 위해 필요한 감독관의 최소 수를 출력한다.
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 2668 숫자고르기 풀이 (0) | 2018.03.10 |
---|---|
BOJ 백준온라인져지 2667 단지번호붙이기 풀이 (0) | 2018.03.09 |
BOJ 백준온라인져지 2455 지능형 기차 풀이 (0) | 2018.03.08 |
BOJ 백준온라인져지 3053 택시 기하학 풀이 (0) | 2018.03.08 |
BOJ 백준온라인져지 2965 캥거루 세마리 풀이 (0) | 2018.03.07 |