[210214][백준/BOJ] 13300번 방 배정

KeonWoo Kim·2021년 2월 14일
0

알고리즘

목록 보기
12/84

문제

입출력


풀이

이중배열로 문제를 해결할 수 있다.

최대 인원수보다 작거나 같은 경우에는 모두 한방에 들어갈 수 있다.

최대 인원수보다 큰 경우에는 같은 성별 같은 나이의 학생수를 최대 인원수로 나눈 나머지가
0인 경우에는 이를 나눈 나머지값만 방 개수에 더하면 되고
0이 아닌 경우에는 이를 나눈 나머지값에 1을 더해서 방 개수에 더하면 된다.

코드

#include <bits/stdc++.h>

int arr[2][6];

int main() 
{
	int n, m, A, B, cnt = 0, tmp;
	scanf("%d %d", &n, &m);
	
	for (int i = 0; i < n; i++)
	{
		scanf("%d %d", &A, &B);
		arr[A][B-1]++;
	}

	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 6; j++)
		{
			if (arr[i][j] > 0 && arr[i][j] <= m)
				cnt++;
			if (arr[i][j] > m)
			{
				if (arr[i][j] % m == 0)
					cnt += arr[i][j] / m;
				else
					cnt += arr[i][j] / m + 1;
			}
		}
	}
	printf("%d\n", cnt);
}

느낀점

이번에도 단순 보여진 케이스만 해결했다고 정답이 되는게 아니라 조금 더 섬세하게 문제에 대해 접근해야겠다고 생각하였다.

profile
안녕하세요

0개의 댓글

관련 채용 정보