출처 - 백준사이트
나의 풀이
여기서 중요한 점은 최종 결과를 담을 변수의 크기인데, B, C가 1이고 N과 응시자수 A가 최대값인 1,000,000인 경우 int의 최대값을 넘어감을 유의 한다.
#include <iostream>
#define MAX 1000000
using namespace std;
int N, B, C;
int tester[MAX];
long long result;
int main() {
cin >> N;
for (int idx = 0 ; idx < N ; idx++)
cin >> tester[idx];
cin >> B >> C;
for (int idx = 0 ; idx < N ; idx++) {
result++; // 총감독관은 무조건 한명이니까 더하고
if (tester[idx] - B > 0) { // 총 감독관으로 부족한 경우
if ((tester[idx] - B)/C) { // 부감독관이 한명이상 필요한 경우
if ((tester[idx]-B)%C) // 부감독관으로 나눴을때 나머지가 있는 경우
result += ((tester[idx]-B)/C) + 1;
else // 부감독관으로 나눴을때 딱 떨어지는 경우
result += (tester[idx]-B)/C;
}
else // 부감독관은 한명으로 충분
result++;
}
}
cout << result;
return 0;
}
728x90
'Algorithm > 삼성 SW 역량 테스트 기출 문제' 카테고리의 다른 글
[Baekjoon][14500] 테트로미노 (1) | 2022.02.16 |
---|---|
[Baekjoon][14499] 주사위 굴리기 (0) | 2022.02.14 |
[Baekjoon][3190] 뱀 (1) | 2022.01.17 |
[Baekjoon][12100] 2048 (Easy) (0) | 2022.01.17 |
[Baekjoon][13460] 구슬 탈출 2 (1) | 2022.01.12 |
댓글