[백준] 13300 (브론즈2)

AI·2025년 9월 4일

https://www.acmicpc.net/problem/13300

올림 표현이 kick!!

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());
        // 학년, 성별 -> 구분 -> k값 넘는지 확인 => 방 개수 파악
        int N = Integer.parseInt(st.nextToken());
        int K = Integer.parseInt(st.nextToken());

        int[][] room = new int[6][2];

        for(int i=0;i<N;i++){
            st = new StringTokenizer(br.readLine());
            int S = Integer.parseInt(st.nextToken()); // 0 = female, 1 = male
            int Y = Integer.parseInt(st.nextToken()); // 1~6

            room[Y-1][S] = room[Y-1][S]+1;
        }

        int count = 0;
        for(int i=0;i<room.length;i++){
            for(int j=0;j<2;j++){
//                System.out.print(room[i][j]);
                if(room[i][j] == 0){
                    continue;
                } else if (room[i][j]<=K && room[i][j]>0) {
                    count++;
                } else{
                    count = count + (room[i][j] / K +1);
                }
            }
//            System.out.println();
        }

//        System.out.println(count);
        bw.write(String.valueOf(count));
        bw.flush();
        br.close();
        bw.close();
    }
}

=> 변경

for (int i = 0; i < room.length; i++) {
    for (int j = 0; j < 2; j++) {
        count += (room[i][j] + K - 1) / K;
    }
}

다른 답안

public class Main {
    static int N, K, ans;
    static int[][] room;
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
        K = Integer.parseInt(st.nextToken());

        room = new int[7][2]; // index를 동일하게 사용하기 위해, 0은 dummy, 1~6은 학년

        for(int i=0;i<N;i++){
            st = new StringTokenizer(br.readLine());
            int gender = Integer.parseInt(st.nextToken());
            int grade = Integer.parseInt(st.nextToken());

            room[grade][gender]++;
        }

        for(int i=1;i<=6;i++){
            for(int j=0;j<2;j++){
                if(room[i][j] > 0){
                    ans += ( room[i][j] / K ) + (( room[i][j] % K == 0 )? 0:1);
                }
            }
        }
        System.out.println(ans);
    }
}

0개의 댓글