직원들 각자가 설정한 시간대로 평일 모두 시간을 지켜 출근한 직원의 수를 구하는 문제.
다른건 그냥 조건 넣으면서 무난하게 풀었는데, (startday + j - 1) % 7 + 1 이 부분에서 요일을 숫자로 맞춰주고 1~5인 요일만 구하는 부분에서 좀 헷갈렸다.
import java.util.*;
class Solution {
public int solution(int[] schedules, int[][] timelogs, int startday) {
int n = schedules.length;
int count = 0;
for (int i = 0; i < n; i++) {
int hope = schedules[i];
int latest = addTen(hope);
boolean ok = true;
for (int j = 0; j < 7; j++) {
int day = (startday + j - 1) % 7 + 1; // 요일 (1 ~ 7)
if (day >= 6) continue; // 토/일 스킵
int actual = timelogs[i][j];
if (actual > latest) {
ok = false;
break;
}
}
if (ok) count++;
}
return count;
}
// 희망 시각 + 10분을 처리
private int addTen(int time) {
int h = time / 100;
int m = time % 100;
m += 10;
if (m >= 60) {
h++;
m -= 60;
}
return h * 100 + m;
}
}
Java
복사