문제 설명
https://www.acmicpc.net/problem/13300
n명의 학생들이 수학여행을 가는데 한 방에 최대 k명의 학생을 배정할 수 있다
방은 같은 성별, 학년별로만 이루어져야 할 때 필요한 방의 수를 구하기
문제 풀이법
우선 2차원 배열에 총 몇 명의 학생이 수학여행을 가는지 구한다
이중 for문을 돌면서 해당 학년, 성별의 학생들의 방이 몇개인지 더한다
- 0명 일 때
- 아무것도 하지 않는다
- 학생 수 <= 최대 방 인원
- + 1
- 학생 수 > 최대 방 인원
- 학생 수 % 최대 방 인원 == 0
- (학생 수 / 최대 방 인원 수)
- 학생 수 % 최대 방 인원 != 0
- (학생 수 / 최대 방 인원 수) + 1
- 학생 수 % 최대 방 인원 == 0
소스 코드
#include <iostream>
using namespace std;
int main()
{
int n, k;
int arr[2][6] = { 0 };
cin >> n >> k;
int a, b;
for (int i = 0; i < n; i++)
{
cin >> a >> b;
arr[a][b - 1]++;
}
int cnt = 0;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 6; j++)
{
if (arr[i][j] > 0)
{
if (arr[i][j] <= k)
cnt++;
else
{
if (arr[i][j] % k == 0)
cnt += arr[i][j] / k;
else
cnt += arr[i][j] / k + 1;
}
}
}
}
printf("%d\n", cnt);
return 0;
}
'Algorithm Study' 카테고리의 다른 글
[백준] 1919 애너그램 만들기 (0) | 2023.01.09 |
---|---|
[백준] 11328 Strfry (0) | 2023.01.09 |
[백준] 10807 개수 세기 (0) | 2023.01.09 |
[백준] 3273 두 수의 합 (0) | 2023.01.06 |
[백준] 2566 최댓값 (0) | 2023.01.06 |