Recent Posts
Recent Comments
Link
- Today
- Yesterday
- Total
메이쁘
(JAVA) 백준 13458번 : 시험 감독 본문
https://www.acmicpc.net/problem/13458
삼성 SW 역량 테스트 기출 문제 중 하나이다.
간단하게 생각하면 된다.
짚고 가야할 것은
1. 100000개 시험장, 1 ~ 1000000명 감독 가능, 1 ~ 1000000 명 응시 하므로 1,000,000 * 1,000,000 이 가능할 수도 있다. 따라서 count를 저장하는 변수 타입은 long 을 사용하자.
2. 총감독관은 1명, 부감독관은 여러 명 가능 => 총감독관이 무조건 필요한가? : YES. 총감독관은 무조건 1명.
3. int 배열 생성해서 for문 돌리자. 이 때, 부감독관 감시 가능 인원을 계산한다.
*** 시험장 인원 - 총감독관 감시 인원 / 부감독관 감시 가능 인원 = 부감독관 수
4. 13 / 4 = 3 ... 1 과 같이 나머지가 존재하는 경우 무조건 부감독관 한 명 더 사용해야한다.
*** 실행 속도를 좀 더 줄여보고 싶을 때
입력 값에서 3번 째 줄(총감독관, 부감독관 감시 인원) 을 먼저 파악한 후
2번째 줄 입력 값 for문 시 하나하나 바로 계산해버리자.
감사합니다.
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
// 시험 감독
// 삼성 기출
public class p13458 {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.valueOf(st.nextToken());
int[] testPlaces = new int[n];
long count = 0;
st = new StringTokenizer(br.readLine());
StringTokenizer st2 = new StringTokenizer(br.readLine());
int a = Integer.valueOf(st2.nextToken());
int b = Integer.valueOf(st2.nextToken());
for(int i = 0; i < n; i++) {
int people = Integer.valueOf(st.nextToken());
testPlaces[i] = people;
// 총 감독관 배치
int rest = testPlaces[i] - a;
count++;
// 부 감독관 배치
if(rest > 0) {
count += rest % b == 0 ? rest / b : (rest / b) + 1;
}
}
System.out.println(count);
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
(JAVA) 백준 15683번 : 감시 (0) | 2020.04.26 |
---|---|
(JAVA) 백준 1062번 : 가르침 (0) | 2020.04.26 |
(JAVA) 백준 2161번 : 카드1 (0) | 2020.04.23 |
(JAVA) 백준 5543번 : 상근날드 (0) | 2020.04.23 |
(JAVA) 백준 9324번 : 진짜 메세지 (0) | 2020.04.22 |
Comments