반응형


굉장히 쉬운 문제였다.
총감독관은 무조건 1명이 들어가야되고 나머지를 부감독관으로 채워야 한다.
응시자 수를 받아서 총감독관 수를 빼주고 나머지는 부감독관의 수로 나눠서 반올림 한 것을 더해주면 답이 된다.
5
10 9 10 9 10
7 20
을 예시로 들면
총감독관이 7명 감독이 가능하기 때문에
10-7 9-7 10-7 9-7 10-7
3 2 3 2 3 이 되고 부감독이 20명 감독이 가능하기 때문에
3/20 2/20 3/20 2/20 3/20
반올림하면 1 1 1 1 1이 되므로 총 감독관 5명 + 부감독관 5명 해서 10명이 된다.
여기서 주의해야 될 것은 응시자수가 1,000,000가 될 수 있는데 시험장 수가 1,000,000이 되면 int형 -21억~21억의 범위를 넘어가게 된다. 그래서 정답을 unsigned long long으로 설정해서 더해줘야만 한다.
이제 정답 코드를보자.
#include <iostream> #include <cmath> using namespace std; #define MAX_N 1000001 int A[MAX_N]; int N; int B, C; int main() { cin >> N; for (int i = 0; i < N; i++) { cin >> A[i]; } cin >> B >> C; unsigned long long answer = N; for (int i = 0; i < N; i++) { int temp = A[i] - B; if (temp < 0) temp = 0; answer += ceil(((double)temp / C)); } cout << answer << endl; }
300x250
'알고리즘 > 삼성 SW 역량 테스트 기출 문제' 카테고리의 다른 글
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 3190번 뱀 (0) | 2021.05.13 |
---|---|
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 12100번 2048 (Easy) (0) | 2021.05.11 |
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 13460번 구슬 탈출2 (0) | 2021.05.11 |
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 14889번 스타트와 링크 (0) | 2021.05.08 |
[C++][BOJ] 삼성 SW 역량 테스트 기출 문제 - 14888번 연산자 끼워넣기 (0) | 2021.05.03 |
댓글