PS/Baekjoon Online Judge
[백준 28238] 정보 선생님의 야망 [Java]
kimyoungrok
2025. 4. 22. 14:54
728x90
문제
https://www.acmicpc.net/problem/28238
풀이
주어진 N명의 학생들의 시간표를 보고 가장 많은 학생들이 두 번의 수업에 참여할 수 있는 날과, 참여할 수 있는 인원을 구하는 문제다.
학생의 수와 요일의 곱이므로 모든 경우를 다 생각해볼 수 있다.
모든 경우에 대한 합을 구하고, 합이 갱신될 때 마다 두 요일을 기록해두면 된다.
// Solve
int a = -1, b = -1;
int max = -1;
for (int i = 0; i < 5; ++i) {
for (int j = i + 1; j < 5; ++j) {
int cnt = 0;
for (int k = 0; k < N; ++k) {
if (count[k][i] + count[k][j] == 2)
++cnt;
}
if (cnt > max) {
a = i;
b = j;
max = cnt;
}
}
}
두 요일에 해당하는 날은 1로 나머지는 0으로 출력해주면 된다.
// Output
sb.append(max).append("\\n");
for (int i = 0; i < 5; ++i) {
sb.append(i == a || i == b ? 1 : 0).append(" ");
}
System.out.println(sb);
}
}
풀이 시간
≤ 20m
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/28238.java
728x90