💫 문제 설명
매개변수
n: 직원 수schedules:n명이 설정한 출근 희망 시각을 담은 1차원 정수 배열- 1 ≤
schedules의 길이 =n≤ 1,000schedules[i]는i + 1번째 직원이 설정한 출근 희망 시각을 의미합니다.- 700 ≤
schedules[i]≤ 1100
- 1 ≤
timelogs: 직원들이 일주일 동안 출근한 시각을 담은 2차원 정수 배열- 1 ≤
timelogs의 길이 =n≤ 1,000timelogs[i]의 길이 = 7timelogs[i][j]는i + 1번째 직원이 이벤트j + 1일차에 출근한 시각을 의미합니다.- 600 ≤
timelogs[i][j]≤ 2359
- 1 ≤
startday: 이벤트를 시작한 요일을 의미하는 정수- 1 ≤
startday≤ 7- 1은 월요일, 2는 화요일, 3은 수요일, 4는 목요일, 5는 금요일, 6은 토요일, 7은 일요일에 이벤트를 시작했음을 의미합니다.
- 1 ≤
- 출근 희망 시각과 실제로 출근한 시각을 100으로 나눈 나머지는 59 이하입니다.
→ 상품을 받을 직원의 수를 return 하도록 solution 함수를 완성
- 직원들은 일주일동안 자신이 설정한
출근 희망 시각 + 10분까지 어플로 출근해야 합니다. 예를 들어 출근 희망 시각이 9시 58분인 직원은 10시 8분까지 출근해야 합니다. - 단, 토요일, 일요일의 출근 시각은 이벤트에 영향을 끼치지 않습니다. 직원들은 매일 한 번씩만 어플로 출근하고, 모든 시각은 시에 100을 곱하고 분을 더한 정수로 표현됩니다. 예를 들어 10시 13분은 1013이 되고 9시 58분은 958이 됩니다.
입출력 예
| schedules | timelogs | startday | result |
|---|---|---|---|
| [700, 800, 1100] | [[710, 2359, 1050, 700, 650, 631, 659], [800, 801, 805, 800, 759, 810, 809], [1105, 1001, 1002, 600, 1059, 1001, 1100]] | 5 | 3 |
이벤트를 시작한 날은 금요일입니다. 직원 3명의 일주일 간 출근 시각을 나타내면 다음과 같습니다.
| 출근 희망 시각 | 출근 인정 시각 |
|---|---|
| 7:00 | 7:10 |
| 8:00 | 8:10 |
| 11:00 | 11:10 |
| 금 | 토 | 일 | 월 | 화 | 수 | 목 |
|---|---|---|---|---|---|---|
| 7:10 | 23:59 | 10:50 | 7:00 | 6:50 | 6:31 | 6:59 |
| 8:00 | 8:01 | 8:05 | 8:00 | 7:59 | 8:10 | 8:09 |
| 11:05 | 10:01 | 10:02 | 6:00 | 10:59 | 10:01 | 11:00 |
모든 직원이 평일에 늦지 않고 출근했습니다. 따라서 상품을 받을 직원은 3명입니다.
💫 코드
def solution(schedules, timelogs, startday):
time = schedules
arr = [0 for i in range(len(time))]
for i in range(len(time)):
n = time[i]
hour = n // 100
min = n-(hour * 100) + 10
if min >= 60:
hour+=1
min-= 60
if hour >= 24:
hour -= 24
time[i] = (hour * 100) + min
for i in range(len(time)):
for j in range(len(timelogs[i])):
day = startday + j
if startday + j > 7:
day -= 7
#평일인경우
if day <= 5:
if timelogs[i][j] > time[i]:
arr[i] = 1
a = arr.count(1)
answer = len(time) - a
return answer

답글 남기기