방 배정

문제 풀러가기

13300

코드

import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int k = sc.nextInt();
    int room = 0;
    int[][] s = new int[7][2];

    for(int i = 0; i < n; i++) {
      int a = sc.nextInt();
      int b = sc.nextInt();

      if(a == 0) {
        s[b][0]++;
      } else {
        s[b][1]++;
      }
    }

    for(int i = 1; i < s.length; i++) {
      for(int j = 0; j < s[i].length; j++) {
        if(s[i][j] == 0) {
          continue;
        }

        room += s[i][j] / k;

        if(s[i][j] % k != 0) {
          room += 1;
        }
      }
    }

    System.out.println(room);
  }
}

설명

2차원 배열을 이용하여 학년과 성별을 구분하였다. 학년은 6학년이고 성별은 두 가지여서 사용하기 괜찮았다. 전체 학생 수와 한 방에 들어갈 수 있는 인원을 입력받은 후 학년별로 입력을 받아 저장한다. 각 학년별로 방의 개수를 구하고 만일 해당 인원이 없으면 방을 추가하지 않고 인원이 남으면 방을 하나 추가하는 식으로 만들었다.