
내가 작성한 코드
class Solution {
public int solution(int[] schedules, int[][] timelogs, int startday) {
int answer = 0;
for (int i = 0; i < schedules.length; i++) {
int temp = startday;
boolean isLate = false; // 지각 여부
for (int j = 0; j < timelogs[i].length; j++) {
// 토요일 넘기기
if (temp == 6) {
temp++;
continue;
}
// 일요일 넘기고 월요일로
if (temp == 7) {
temp = 1;
continue;
}
int result = getWorkTime(schedules[i]); // 출근시간 계산
// 지각 여부 확인
if (result < timelogs[i][j]) {
isLate = true;
break;
}
temp++;
}
if (!isLate) {
answer++;
}
}
return answer;
}
// 출근시간 계산 메서드
private int getWorkTime(int i) {
int time = i;
int hour = time / 100;
int minute = time % 100;
minute += 10;
hour += minute / 60;
minute = minute % 60;
int result = hour * 100 + minute;
return result;
}
}
다른 사람의 코드
class Solution {
public int solution(int[] schedules, int[][] timelogs, int startday) {
int answer = 0;
for (int i = 0; i < schedules.length; i++) {
int x = 0; // 평일 출근 횟수
for (int j = 0; j < 7; j++) {
// 주말 건너 뛰기
if (startday % 7 == 6 || startday % 7 == 0) {
} else {
// 평일 출근 시간 체크
if (cal(timelogs[i][j]) - (cal(schedules[i]) + 10) <= 0) {
x++;
}
}
startday++;
}
if (x == 5) {
answer++;
}
}
return answer;
}
// 시간 계산 메서드
public int cal(int time) {
int x = time / 100;
int y = time % 100;
return x * 60 + y;
}
}
Share article