반응형
굉장히 쉬운 문제였다.
총감독관은 무조건 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 |
댓글