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
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 01758] 알바생 강호 [Java] (0) | 2025.04.23 |
---|---|
[백준 03991] 한번 쏘면 멈출 수 없어 [Java] (0) | 2025.04.22 |
[백준 28445] 알록달록 앵무새 [Java] (0) | 2025.04.21 |
[백준 01769] 3의 배수 [Java] (0) | 2025.04.20 |
[백준 15780] 멀티탭 충분하니? [Java] (0) | 2025.04.19 |