function solution(schedules, timelogs, startday) {
let answer = 0;
timelogs.map((timelog, idx) => {
let flag = true,
day = startday - 1;
for (const table of timelog) {
day++;
if (day === 6 || day === 7) continue;
const tHour = Math.floor(Number(table) / 100),
tMinute = Number(table) % 100;
const sHour = Math.floor(Number(schedules[idx]) / 100),
sMinute = Number(schedules[idx] % 100);
const diff = (tHour - sHour) * 60 + (tMinute - sMinute);
if (diff > 10) flag = false;
if (day > 7) day = 1;
}
if (flag) answer++;
});
return answer;
}
def solution(schedules, timelogs, startday):
answer = 0
def convertTime(time):
h = time // 100
m = time % 100
return h * 60 + m
for idx, timelog in enumerate(timelogs):
s = startday - 1
flag = True
for table in timelog:
s += 1
if s in [6, 7]:
continue
elif s > 7:
s = 1
if convertTime(table) - convertTime(schedules[idx]) > 10:
flag = False
if flag:
answer += 1
return answer
구현 문제였는데 실수한 부분이 나눗셈을 할 때 소수부를 신경쓰지 않았던 점이다.
이 부분 때문에 시간이 지체됐다.
조금 더 계산할 때 신경써주어야할 것 같다.
파이썬에서 나눗셈을 할 때 / 이면 소수부까지 // 이면 정수부에 대한 몫만 구하는 것
enumerate를 통해 value, idx를 한 번에 받아올 수 있다.
파이썬에서는 in 배열을 통해서 쉽게 포함되어있는지 확인할 수 있다.