1 λΆ„ μ†Œμš”

πŸ“ [B2_13300] λ°© λ°°μ •

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class Main {
    static StringTokenizer st;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        st = new StringTokenizer(br.readLine(), " ");

        // 학생 수
        int N = Integer.parseInt(st.nextToken());

        // ν•œ 방에 λ°°μ •ν•˜λŠ” μ΅œλŒ€ 인원 수
        int K = Integer.parseInt(st.nextToken());

        // 학생 수 μ €μž₯ λ°°μ—΄
        int[][] arr = new int[2][7];

        // 총 방 수
        int res = 0;

        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine(), " ");
            int S = Integer.parseInt(st.nextToken());
            int Y = Integer.parseInt(st.nextToken());

            arr[S][Y]++;
        }

        for (int i = 1; i < 7; i++) {

            for (int j = 0; j < 2; j++) {

                // 아무도 μ—†λŠ” μ„±, 학년이면 톡과 ( κ°€μ§€μΉ˜κΈ° )
                if (arr[j][i] == 0) {
                    continue;
                }

                // ν•œ 방으둜 μˆ˜μš©ν•  수 μžˆλŠ” 학생 수 인 경우
                else if (arr[j][i] <= K) {
                    res++;
                }

                // μ—¬λŸ¬ 방이 ν•„μš”ν•œ 경우
                else if (arr[j][i] > K) {
                    int temp = arr[j][i] / K;

                    // λ§Œμ•½ 방이 μˆ˜μš©ν•  수 μžˆλŠ” μΈμ›μ΄λž‘ 맞게 떨어진닀면
                    if (arr[j][i] % K == 0) {
                        res += temp;
                    }

                    // 맞게 떨어지지 μ•ŠλŠ” λ‹€λ©΄ λ°© ν•˜λ‚˜λ₯Ό 더 μ¨μ•Όν•œλ‹€
                    else {
                        res += (temp + 1);
                    }
                }


            }
        }

        System.out.println(res);
    }
}

πŸ€” λ‚˜μ˜ 생각

μ„±, ν•™λ…„ λ³„λ‘œ μΈμ›μ˜ 수λ₯Ό μ²΄ν¬ν•΄μ„œ 배열에 μ €μž₯ν•΄ μ£Όμ—ˆλ‹€.
그리고 각 μ„±κ³Ό ν•™λ…„ λ³„λ‘œ λŒλ©΄μ„œ λ§Œμ•½ ν•œ 방에 λ°°μ •λ˜λŠ” μ΅œλŒ€ μΈμ›μˆ˜λ³΄λ‹€ 적으면 λ°© ν•œκ°œλ₯Ό λ°°μ •ν–ˆκ³ 
λ§Œμ•½ 많으면 ν•œ 방에 λ°°μ •λ˜λŠ” μ΅œλŒ€ μΈμ›μˆ˜λ₯Ό λ‚˜λˆ„μ–΄ λ‚˜λ¨Έμ§€κ°€ μ—†μœΌλ©΄ λͺ« 만큼 방을 λ°°μ •ν–ˆκ³ , λ‚˜λ¨Έμ§€κ°€ 있으면 λͺ« + 1 만큼 방을 λ°°μ •ν–ˆλ‹€.
그리고 κ°€μ§€μΉ˜λ¦¬λ₯Ό 톡해 μ‘°κΈˆμ΄λΌλ„ μ‹œκ°„μ„ 쀄이렀고 ν•˜μ˜€λ‹€.
방을 μ–΄λ–€ κ·œμΉ™μœΌλ‘œ λ°°μ •ν•˜λŠ”μ§€λ§Œ νŒŒμ•…ν•œλ‹€λ©΄ 어렡지 μ•Šμ€ λ¬Έμ œμ˜€λ‹€.