From d5e52677e391c827c42c9a29064c247d3b5ca02c Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 1 Jan 2025 22:44:17 +0900 Subject: [PATCH] [SOLVED]: SOLVED boj13300 --- .../Main.java" | 52 ++++++++++++ .../README.md" | 80 +++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 "0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/Main.java" create mode 100644 "0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/README.md" diff --git "a/0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/Main.java" "b/0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/Main.java" new file mode 100644 index 0000000..5aa28ef --- /dev/null +++ "b/0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/Main.java" @@ -0,0 +1,52 @@ +/* ************************************************************************** */ +/* */ +/* ::: ::: ::: */ +/* Problem Number: 13300 :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: judemin +#+ +#+ +#+ */ +/* +#+ +#+ +#+ */ +/* https://boj.kr/13300 #+# #+# #+# */ +/* Solved: 2025/01/01 21:47:29 by judemin ### ### ##.kr */ +/* */ +/* ************************************************************************** */ +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws Exception { + // [7][] 1 ~ 6 : 각 학년 + // [][2] 0 ~ 1 : 성별 + int[][] arr = new int[7][2]; + int answer = 0; + + for(int i = 0;i < 7;i++) + for(int j = 0;j < 2;j++) + arr[i][j] = 0; + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int N = Integer.parseInt(st.nextToken()); + int K = Integer.parseInt(st.nextToken()); + for(int i = 0;i < N;i++){ + st = new StringTokenizer(br.readLine()); + int gender = Integer.parseInt(st.nextToken()); + int grade = Integer.parseInt(st.nextToken()); + arr[grade][gender] += 1; + } + + for(int i = 1;i <= 6;i++){ + for(int j = 0;j <= 1;j++){ + if(arr[i][j] == 0) + continue; + + answer += arr[i][j] / K; + arr[i][j] %= K; + + if(arr[i][j] != 0) + answer += 1; + } + } + + System.out.println(answer); + } +} \ No newline at end of file diff --git "a/0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/README.md" "b/0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/README.md" new file mode 100644 index 0000000..b2daff7 --- /dev/null +++ "b/0_ARRAY/13300\353\262\210\357\274\232 \353\260\251 \353\260\260\354\240\225/README.md" @@ -0,0 +1,80 @@ +# 13300번: 방 배정 - Bronze II + + + + + + + +## 문제 + +[문제 링크](https://boj.kr/13300) + + +

정보 초등학교에서는 단체로 2박 3일 수학여행을 가기로 했다. 여러 학년이 같은 장소로 수학여행을 가려고 하는데 1학년부터 6학년까지 학생들이 묵을 방을 배정해야 한다. 남학생은 남학생끼리, 여학생은 여학생끼리 방을 배정해야 한다. 또한 한 방에는 같은 학년의 학생들을 배정해야 한다. 물론 한 방에 한 명만 배정하는 것도 가능하다.

+ +

한 방에 배정할 수 있는 최대 인원 수 K가 주어졌을 때, 조건에 맞게 모든 학생을 배정하기 위해 필요한 방의 최소 개수를 구하는 프로그램을 작성하시오.

+ +

예를 들어, 수학여행을 가는 학생이 다음과 같고 K = 2일 때 12개의 방이 필요하다. 왜냐하면 3학년 남학생을 배정하기 위해 방 두 개가 필요하고 4학년 여학생에는 방을 배정하지 않아도 되기 때문이다.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
학년여학생남학생
1학년영희동호, 동진
2학년혜진, 상희경수
3학년경희동수, 상철, 칠복
4학년 달호
5학년정숙호동, 건우
6학년수지동건
+ + + +## 입력 + + +

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어 주어진다. 다음 N 개의 각 줄에는 학생의 성별 S와 학년 Y(1 ≤ Y ≤ 6)가 공백으로 분리되어 주어진다. 성별 S는 0, 1중 하나로서 여학생인 경우에 0, 남학생인 경우에 1로 나타낸다. 

+ + + +## 출력 + + +

표준 출력으로 학생들을 모두 배정하기 위해 필요한 최소한의 방의 수를 출력한다.

+ + + +## 소스코드 + +[소스코드 보기](Main.java) \ No newline at end of file