[문제 링크]
https://school.programmers.co.kr/learn/courses/30/lessons/388351


[난이도]
- Level 1
[알고리즘]
- 구현
[코드]
class Solution {
public int solution(int[] schedules, int[][] timelogs, int startday) {
int answer = 0;
boolean flag = false;
for(int i=0;i<schedules.length;i++){
int time = function(schedules[i]);
flag = false;
for(int j=0;j<7;j++){
if(j == 7-startday || j == 6-startday){
continue;
}
if(6-startday == -1){
if(j==6){
continue;
}
}
if(timelogs[i][j]>time){
flag = true;
break;
}
}
if(!flag){
answer++;
}
}
return answer;
}
static int function(int time){
int min = time%100;
int hour = time/100;
int newMin = min+10;
if(newMin>=60){
newMin -=60;
hour++;
}
int newTime = hour*100 + newMin;
return newTime;
}
}
[풀이]
단순 구현 문제이다. 토요일과 일요일이 위치할 배열을 고르는 법은 6 - startday, 7-startday이다. 중요한점은 startday가 7일때를 고려해야한다. 이때 토요일은 배열의 마지막에 위치하기 때문에 한 번 더 if문으로 해결했다.
10분이 지난시간이 60분을 넘길때를 고려해주어야 한다.