-
[C++] 백준 13458번 | 시험 감독Problem Solving/Baekjoon 2023. 6. 13. 21:17
시험 감독
✍🏻 풀이
간단한 수학 문제 🤩
이 문제에서 주의해야 할 포인트는 두 가지가 있다.
첫 번째는 총감독관만으로 충분한 경우에 부감독관을 계산하지 않는 것이다.
if (A[i] <= 0) continue; // 총감독관만으로도 충분하면 해당 시험장 PASS
두 번째는 result의 자료형이었다.
시험장의 개수 N이 1,000,000
각 시험장의 응시자 수가 전부 1,000,000
B, C가 각각 1인 경우에
정답은 21억을 넘어가게 된다.
따라서 result를 int로 설정하게 되면 틀렸습니다가 뜬다.
long long int로 설정해주자
✅ Accept Code
// baekjoon 13458 #include <bits/stdc++.h> #define ll long long int using namespace std; int main() { int N, B, C; vector<ll> A; cin >> N; for (int i = 0; i < N; i++) { ll tmp; cin >> tmp; A.push_back(tmp); } cin >> B >> C; ll result = N; // 각 시험장마다 배치된 총감독관 for (int i = 0; i < N; i++) { // 총감독관이 감시하는 응시자 빼기 A[i] -= B; if (A[i] <= 0) continue; // 총감독관만으로도 충분하면 해당 시험장 PASS // 남은 학생들을 위해 필요한 부감독관 if (A[i] % C != 0) result += A[i] / C + 1; else result += A[i] / C; } cout << result; return 0; }
728x90'Problem Solving > Baekjoon' 카테고리의 다른 글
[C++] 백준 12100 | 감시 (0) 2023.07.14 [C++] 백준 14500 | 테트로미노 (2) 2023.06.17 [C++] 백준 3190번 | 뱀 (0) 2023.06.13 [C++] 백준 12100 | 2048(Easy) (0) 2023.06.11 [C++] 백준 14499 | 주사위 굴리기 (0) 2023.04.08