반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 00:03
관리 메뉴

ImJay

[BOJ/Java] 13300. 방 배정 본문

알고리즘/구현

[BOJ/Java] 13300. 방 배정

ImJay 2024. 1. 23. 22:47
반응형

[BOJ/Java] 13300. 방 배정

 

13300번: 방 배정

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

www.acmicpc.net


해설

풀이

package edu.ssafy.im.BOJ.No13300;

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

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

        // 학생 수 N과 한 방에 배정할 수 있는 최대 인원 수 K 입력
        String input = br.readLine();
        StringTokenizer st = new StringTokenizer(input);
        int n = Integer.parseInt(st.nextToken());
        int k = Integer.parseInt(st.nextToken());

        // 성별과 학년에 따른 배열 초기화
        // arr[0]: 여학생, arr[1]: 남학생
        // 배열의 두 번째 차원은 학년을 나타냄
        int[][] arr = new int[2][6];
        
        // 학생 정보 입력 및 배열에 저장
        for (int i = 0; i < n; i++) {
            input = br.readLine();
            st = new StringTokenizer(input);

            int s = Integer.parseInt(st.nextToken()); // 성별
            int y = Integer.parseInt(st.nextToken()); // 학년

            arr[s][y-1]++; // 해당 성별, 학년에 인원 추가
        }

        int ans = 0;
        // 각 성별과 학년에 대해 필요한 방의 수 계산
        for (int s = 0; s < 2; s++) {
            for (int y = 0; y < 6; y++) {
                // 해당 성별, 학년의 인원을 최대 인원 수로 나누어 올림한 값을 더함
                ans += Math.ceil((double)arr[s][y] / (double)k);
            }
        }

        // 결과 출력
        sb.append(ans);
        System.out.print(sb);
    }
}

 

반응형
Comments