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
c++로 백준 13458번 문제를 풀어보겠다.
문제
총 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)
출력
각 시험장마다 응시생을 모두 감독하기 위해 필요한 감독관의 최소 수를 출력한다.
예제 입력 1 복사
1
1
1 1
예제 출력 1 복사
1
<문제 풀이>
처음에 작성한 코드는 다음과 같다.
visual studio 에서는 원하는 대로 출력됐지만, 백준 사이트에서는 "틀렸습니다"라고 떴다.
간단한 수를 입력한다면 잘 실행되지만, 내가 고려하지 못했던 건 매우 큰 수가 입력됐을 때였다.
매우 큰 수가 입력될 때까지 고려한다면 count 변수의 데이터 타입을 long long형으로 바꿔주어야했다.
1. N을 선언한 후 입력받는다.
2. 배열을 선언한 후 N개의 숫자를 입력받아 저장한다.
3. for문을 통해 배열에 있는 숫자만큼 반복하며 필요한 감독관 수를 계산한다.
(먼저 총감독관 수를 계산한 후, 남아있는 수로 부감독관 수를 계산한다.)
4. 계산한 count 값을 출력한다.
코드는 다음과 같다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 11051번 : 이항 계수 2, c++ (0) | 2022.02.15 |
---|---|
[백준 알고리즘] 11050번 : 이항 계수 1, c++ (0) | 2022.02.15 |
[백준 알고리즘] 18258번 : 큐 2, c++ (0) | 2022.02.14 |
[백준 알고리즘] 10773번 : 제로, c++ (0) | 2022.02.14 |
[백준 알고리즘] 4458번 : 첫 글자를 대문자로, c++ (0) | 2022.02.13 |