Skip to content

Commit

Permalink
[SOLVED]: SOLVED boj13300
Browse files Browse the repository at this point in the history
  • Loading branch information
judemin committed Jan 1, 2025
1 parent 36bc167 commit d5e5267
Show file tree
Hide file tree
Showing 2 changed files with 132 additions and 0 deletions.
52 changes: 52 additions & 0 deletions 0_ARRAY/13300번: 방 배정/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/* ************************************************************************** */
/* */
/* ::: ::: ::: */
/* Problem Number: 13300 :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: judemin <boj.kr/u/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);
}
}
80 changes: 80 additions & 0 deletions 0_ARRAY/13300번: 방 배정/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# 13300번: 방 배정 - <img src="https://static.solved.ac/tier_small/4.svg" style="height:20px" /> Bronze II

<!-- performance -->

<!-- 문제 제출 후 깃허브에 푸시를 했을 때 제출한 코드의 성능이 입력될 공간입니다.-->

<!-- end -->

## 문제

[문제 링크](https://boj.kr/13300)


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

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

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

<table class="table table-bordered table-center-30">
<thead>
<tr>
<th>학년</th>
<th>여학생</th>
<th>남학생</th>
</tr>
</thead>
<tbody>
<tr>
<td>1학년</td>
<td>영희</td>
<td>동호, 동진</td>
</tr>
<tr>
<td>2학년</td>
<td>혜진, 상희</td>
<td>경수</td>
</tr>
<tr>
<td>3학년</td>
<td>경희</td>
<td>동수, 상철, 칠복</td>
</tr>
<tr>
<td>4학년</td>
<td>&nbsp;</td>
<td>달호</td>
</tr>
<tr>
<td>5학년</td>
<td>정숙</td>
<td>호동, 건우</td>
</tr>
<tr>
<td>6학년</td>
<td>수지</td>
<td>동건</td>
</tr>
</tbody>
</table>



## 입력


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



## 출력


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



## 소스코드

[소스코드 보기](Main.java)

0 comments on commit d5e5267

Please sign in to comment.