본문 바로가기
코드업(codeup)/C

[코드업(codeup)/C]코드업(codeup) 4861 : 방 배정 C언어

by starfish22 2022. 2. 22.
728x90

▶문제 : 방 배정 (codeup.kr)

 

방 배정

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에 는 수학여행에 참가하는 학생 수를 나타내는 정수 $N$($1 ≤N ≤1,000$)과 한 방에 배정할 수 있는 최대 인원 수 $K$($1≤K≤1,000$)가 공백으로 분 리

codeup.kr

 

▶코드 작성

#include <stdio.h>

int main()
{
    int n, k, cnt = 0;
    int arr[2][6] = {0};

    scanf("%d %d", &n, &k);
    for (int i = 0, m, g; i < n; i++) {
        scanf("%d %d", &m, &g);
        arr[m][g - 1]++;//arr[성][학년] 인원수 체크
    }

    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 6; j++)
        {
            if (arr[i][j] > 0)//성별, 학년별 인원수가 0보다 클 때
            {
                cnt += arr[i][j] / k;//k명을 꽉채운 방 개수
                if (arr[i][j] % k > 0) cnt++;//k명을 못채운 방 +1
            }
        }
    }

    printf("%d", cnt);

    return 0;
}

 

▶해석

arr [2][6] 배열로 성별, 학년별로 나누어 인원수를 체크한다.

2중 반복문으로 arr배열에서 인원수가 0보다 클 때 cnt에 k명을 꽉 채운 방 개수를 구하는 arr [i][j]/k를 더해주고, k명을 못 채운 방을 알기 위해 if문으로 arr [i][j]% k가 0보다 큰 것을 구하여 +1 해주었다.

728x90

댓글