문제 링크
https://www.acmicpc.net/problem/13300
문제 분석
각 학생들은 학년과 성별로 구분된다.
같은 학년의 같은 성별끼리 구성되어야 하므로 2중 배열을 사용해서
같은 학년이면서 같은 성별인 학생끼리 함께 저장한 후에
이를 방의 최대 인원으로 나누고 올림을 하면 방의 개수를 구할 수 있다.
구현 순서를 다음과 같이 정리할 수 있다.
1. 전체 학생 수와 최대 인원을 입력받는다.
2. 전체 학생 수 만큼 입력을 받는다.(같은 학년/같은 성별끼리 저장)
3. 각 배열 값을 K로 나누고 올림하여 방의 개수를 모두 더한다.
최종 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
String[] input = reader.readLine().split(" ");
int N = Integer.parseInt(input[0]);
int K = Integer.parseInt(input[1]);
int[][] students = new int[6][2];
for(int i = 0; i < N; i++){
String[] studentInput = reader.readLine().split(" ");
int gender = Integer.parseInt(studentInput[0]);
int grade = Integer.parseInt(studentInput[1])-1;
students[grade][gender]++;
}
int roomCounter = 0;
for(int i=0; i<6;i++){
for(int j=0; j<2; j++){
roomCounter+=(students[i][j]+K-1)/K;
}
}
writer.write(String.valueOf(roomCounter));
writer.flush();
reader.close();
writer.close();
}
}
'JAVA > 코딩테스트 문제풀이' 카테고리의 다른 글
[Java] 10866번. 덱 (0) | 2024.06.19 |
---|---|
[Java] 1919번. 애너그램 만들기 (0) | 2024.05.28 |
[Java] 1158번. 요세푸스 문제 (0) | 2024.05.28 |
[Java] 5397번. 키로거 (0) | 2024.05.28 |
[Java] 1406번. 에디터 (0) | 2024.05.27 |