이건 뭐 문제가 워낙 a piece of cake이었다.

물론 생각은 좀 했다. 남성과 여성으로 나눠서 크기 6짜리 int배열을 두개 만들었다.

그리고 학년별로 숫자를 세어주었다.

그 다음 최대인원으로 나누기와 나머지를 구해서 필요한 방의 갯수를 늘려주었다.

항상 변수 초기화와 직관적인 연산에 주의하자!!!!!!

일리 갱!

#include<iostream>
#include<string>

using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int N, K, Y; // 참가 학생수, 한방의 최대인원, 학년
	bool S; // 성별 true가 남자, false가 여자
	int male[6], female[6];
	int r = 0; // 필요한 방 갯수
	cin >> N >> K;

	for (int i = 0; i < 6; i++) {
		male[i] = 0;
		female[i] = 0;
	}

	while (N--) {
		cin >> S >> Y;
		if (S) { // 남성
			male[Y - 1]++;
		}
		else { // 여성
			female[Y - 1]++;
		}
	}
	for (int i = 0; i < 6; i++) {
		
		int m = male[i] / K;
		int f = female[i] / K;
		if ((male[i] % K)!=0) m++;
		if ((female[i] % K)!=0) f++;
		
		r += m + f; // 방 갯수 올려준다.
	}
	cout << r << endl;

}

+ Recent posts