728x90
https://programmers.co.kr/learn/courses/30/lessons/17678
일단 시간을 편하게 다루기 위해
모두 분 단위로 바꿔주었다.
timetable을 정렬해서 가장 일찍 온 사람 순서대로 배치했다.
반복문을 돌며 탈수 있는 사람들을 모두 태웠다.
만약 마지막 버스에 정원초과가 났을 경우
마지막으로 탄 사람보다 1분 일찍오게 구성했다.
여유롭게 탈 수 있을경우 딱 버스가 오는 시간에 탑승하도록 구성했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
from collections import deque
def solution(n, t, m, timetable):
answer = 0
answer_str = ''
# 전부다 분 단위로 바꿔주겠음
time = deque()
for ti in timetable:
hour, minute = ti.split(":")
hour = int(hour) * 60
minute = int(minute)
time.append(hour + minute)
time = deque(sorted(time))
bus_time = 540
for _ in range(n):
max_cnt = m
last = bus_time
while time:
if max_cnt != 0 and time[0] <= bus_time:
last = time.popleft()
max_cnt -= 1
else:
break
if _ == n - 1 and max_cnt == 0:
answer = last - 1
elif _ == n - 1 and max_cnt != 0:
answer = bus_time
bus_time += t
ah = str(answer // 60)
am = str(answer % 60)
if len(ah) == 1:
ah = '0' + ah
if len(am) == 1:
am = '0' + am
answer_str = ah + ":" + am
return answer_str
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 1 ] 비밀지도 (파이썬/python) (0) | 2021.06.23 |
---|---|
[프로그래머스 LV 1] 실패율 (파이썬/python) (0) | 2021.06.23 |
[프로그래머스 LV 3] 보석 쇼핑 (파이썬/python) (0) | 2021.06.23 |
[프로그래머스 LV 3] 불량 사용자 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 3] 2 x n 타일링 (파이썬/python) (0) | 2021.06.22 |