다 하고 보면 간단한 문제였지만 인덱스를 어떻게 맞춰야 하는지, 비교는 어떤 방식으로 할지, 조건문은 어떻게 써야 깔끔할지 생각하는 것이 어려운 문제였다.
class Solution {
public int solution(int[] schedules, int[][] timelogs, int startday) {
// 배열이 0~6으로 인덱싱되어 있지만 startday만 1~7로 되어있기 때문에 맞춰줘야함
startday--;
int limit = 0;
int reward = schedules.length;
for(int i = 0; i < schedules.length; i++) {
//litmit은 출근해야하는 시간. 50분이 넘어가면 +10분을 해서 limit을 정했을 시 60분이 넘어가기때문에
//시간이 넘어가니 +100을 해주고 다시 시간을 맞추기 위해 -60, limit을 맞추기 위해 +10을 해줌.
limit = schedules[i]%100 + 10 >= 60 ? schedules[i]+50 : schedules[i]+10;
for(int j = 0; j < 7; j++) {
// 토요일, 일요일은 비교 자체를 하지 않을 것인데, %7로 배열 인덱스를 넘어가더라도 배열 안에서 돌게 만들고 토요일, 일요일 걸러냄
if((j + startday)%7 == 5 || (j + startday)%7 == 6 ) {
continue;
} else {
// 출근시간과 허용시간을 비교해서 지각이면 상을 받지 못하게 하고 반복문을 빠져나간다.
if(timelogs[i][j] > limit) {
reward--;
break;
}
}
}
}
return reward;
}
}'프로그래머스 1단계' 카테고리의 다른 글
| 프로그래머스 [이웃한 칸] (0) | 2026.03.02 |
|---|---|
| 프로그래머스 [붕대 감기] (0) | 2026.03.01 |
| 프로그래머스 [동영상 재생기] (0) | 2026.02.28 |
| 프로그래머스 [택배 기사] (0) | 2026.02.28 |