hye-log

[백준]13300번 방 배정(JAVA) 본문

CodingTest/Baekjoon

[백준]13300번 방 배정(JAVA)

iihye_ 2023. 8. 7. 20:11

0. 문제 링크

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

 

13300번: 방 배정

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

www.acmicpc.net

 

1. 문제 설명

1) 같은 학년끼리, 같은 성별끼리 방 배정

2) 한 방에 배정할 수 있는 최대 인원 수 K가 주어졌을 때 필요한 방의 최소 개수 구하기

 

2. 입출력

// input
16 2
1 1
0 1
1 1
0 2
1 2
0 2
0 3
1 3
1 4
1 3
1 3
0 6
1 5
0 5
1 5
1 6

// output
12

 

3. 코드

import java.util.Scanner;

public class b13300 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt(); // 수학여행에 참가하는 학생 수(1000)
		int K = sc.nextInt(); // 한 방에 배정할 수 있는 최대 인원 수(1000)
		int[][] rooms = new int[2][6];
		int S = 0; // 성별
		int Y = 0; // 학년
		int ans = 0; // 필요한 방의 수
		
		for(int n = 0; n < N; n++) {
			S = sc.nextInt(); // 성별(여 : 0 / 남 : 1)
			Y = sc.nextInt(); // 학년
			rooms[S][Y-1]++;
		}
		
		for(int s = 0; s < 2; s++) {
			for(int y = 0; y < 6; y++) {
				if(rooms[s][y] > 0) { // 학생이 있으면 방 배정
					ans += rooms[s][y] / K; // 몫만큼 방이 필요
					if(rooms[s][y] % K > 0) { // 나머지가 있으면 방이 무조건 필요
						ans++;
					}
				} // 학생이 없으면 방 배정 x
			}
		}
		
		System.out.println(ans);
	}
}

 

실행 결과

 

4. 회고

1) 성별, 학년에 따라 방 배정

2) 학생 수가 K보다 큰 경우 몫만큼 방을 주고, 나머지가 있으면 방을 하나 더 주기

 

5. Github

https://github.com/iihye/Algorithm/blob/main/Baekjoon/b13300.java

728x90

'CodingTest > Baekjoon' 카테고리의 다른 글

[백준]1158번 요세푸스 문제(JAVA)  (0) 2023.08.08
[백준]10163번 색종이(JAVA)  (0) 2023.08.07
[백준]2493번 탑(JAVA)  (0) 2023.08.07
[백준]2164번 카드2(JAVA)  (0) 2023.08.07
[백준]2023번 신기한 소수(JAVA)  (0) 2023.08.06
Comments