-
[백준] 13300번 : 방배정 - 자바(JAVA)알고리즘/백준 2022. 4. 17. 00:01
https://www.acmicpc.net/problem/13300
문제 해석
남자는 남자끼리, 여자는 여자끼리 방배정을 해야 한다.
방의 최소 개수를 구하자
한방에는 같은 학년끼리
한방에 배정할 수 있는 최대 인원수 K문제 풀이 전 설계
2차원 배열을 선언하여 거기에 성별 /학 생년의 학생수를 저장합니다.
예를 들어 한방에 2명밖에 못 들어가는데 학생이 3명이면 반이 2개 필요합니다.
학생수 == 0이라면 그냥 넘어가고
학생수가 <=K 라면 1을 증가시키고
학생수가 > K 라면 학생수 / 방수를 했을 때 1.5이므로 이후에 천장함수 Math.ceil을 사용하여 2로 변환하여 증가시킵니다.
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_13300_방배정 { public static void main(String[] args) throws IOException { 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()); int[][] studentInfo = new int[2][7]; for (int i = 0; i < N; i++) { st = new StringTokenizer(br.readLine(), " "); int gender = Integer.parseInt(st.nextToken()); int grade = Integer.parseInt(st.nextToken()); studentInfo[gender][grade]++; } int count = 0; for (int i = 0; i < 2; i++) { for (int j = 1; j <= 6; j++) { if (studentInfo[i][j] == 0) { continue; } if (studentInfo[i][j] <= K) { count++; continue; } count += Math.ceil((double) studentInfo[i][j] / K); } } System.out.println(count); } }
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1244번 : 스위치 켜고 끄기 - 자바(JAVA) (0) 2022.04.19 [백준] 17144번 : 미세먼지 안녕! - 자바(JAVA) (0) 2022.04.18 [백준] 24512번 : Bottleneck Travelling Salesman Problem(Small) - 자바(JAVA) (0) 2022.04.16 [백준] 10026번 : 적록색약 - 자바(JAVA) (0) 2022.04.14 [백준] 2477번 : 참외밭 - 자바(JAVA) (0) 2022.04.13