티스토리 뷰
문제 - (https://www.acmicpc.net/problem/13458)
솔직히 쉬운 문제였다.
시험장별로 총 감독관은 무조건 1명이므로
A[i]에 총 감독관이 감시할 수 있는 응시자 수(b)를 뺀다. - bSub이라고 하겠다.
따라서,
bSub = A[i] - b;
그렇다면, bSub만큼의 응시자를 부감독관이 맡으면 된다.
부감독관은 여러명일 수 있으므로 (0명도 가능) 부감독관이 감시할 수 있는 응시자 수(c)를 bSub에 나눠줌으로써 부감독관이 감시할 수 있는 인원을 구한다. 하지만 여기서 주의할 것은 나눠준 나머지 응시자 수 또한 부감독관이 감시해야 한다는 것이다. 물론, 나머지 응시자가 없다면 신경쓰지 않아도 된다.
따라서,
answer += bSub / c;
if( bSub % c != 0 ) answer += 1
총감독관은 시험장의 수 만큼 있을 것이므로
answer += n;
을 해주면 답이 나온다.
📌주의할 점
- 입력 변수의 범위는 반드시 확인한다. 큰 실수이므로 실수에 적겠다.
😅실수
- b=1, c=1, n=1,000,000 일 경우를 생각해보면 총 감독관의 수는 1,000,000,000,000명이 된다.
int형이 나타낼 수 있는 수는 약 21억이므로 1조라는 수를 감당할 수 없다 ㅠㅠ
따라서 answer는 int가 아니라 long형으로 선언되어야 한다. 참고로 long은 약 900경까지 표현 가능 - 정말 중요한 부분이다... 입력 변수의 범위를 잘 보고 그 값이 너무 크다면 내가 사용한 자료형으로 표현할 수 있을지 확인해보는 디테일이 필요하다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Proctor {
static int n;
static int[] people;
static int b;
static int c;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
people = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
people[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
b = Integer.parseInt(st.nextToken());
c = Integer.parseInt(st.nextToken());
/* n=1,000,000, b=1, c=1 인 경우 총 감독관의 수는 1,000,000 * 1,000,000 = 1조
* int가 제공할 수 있는 약 21억의 숫자를 넘어서므로 long을 사용해야 함 */
long/* int 범위를 넘어갈 수 있음! */ answer = 0;
for (int i = 0; i < n; i++) {
int bSub = people[i] - b;
answer += 1;
if (bSub > 0) {
answer += (bSub / c);
if (bSub % c != 0) answer += 1;
}
}
System.out.println(answer);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 BOJ] 16235번 / Java / 나무 재테크 (1) | 2020.08.15 |
---|---|
[백준] 1969번 / Java / DNA - 그리디 (0) | 2020.07.03 |
[백준] 15685번 / Java / 드래곤 커브 - 구현, 시뮬레이션 (0) | 2020.06.25 |
[백준] 14503번 / Java / 로봇 청소기 - 구현, 시뮬레이션 (0) | 2020.06.24 |
[백준] 14502번 / Java / 연구소 - DFS, 완전탐색 (0) | 2020.06.24 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 우선순위큐
- 구현
- 완전탐색
- BOJ
- dfs
- 16234
- 재귀
- 인구이동
- Access-Control-Allow-Origin
- 큰 수 만들기
- 백준
- withCredentials
- 아기상어
- 시뮬레이션
- Greedy
- 드래곤 커브
- 14891
- 프로그래머스
- java
- 배열순회
- 브라우저 요청
- 코테
- 코딩테스트
- header
- 코딩테스트 연습
- 사다리 조작
- 구명보트
- 톱니바퀴
- 그리디
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함