728x90
https://school.programmers.co.kr/learn/courses/30/lessons/155651
나의 풀이
check in은 +1 chec out은 -1이라고 하면 check in list와 check out list를 tuple을 통해 in인지 out인지 판별한다.
여기서 list를 합칠 때
check out list를 앞에 두고 합쳐야한다. 같은 수 정렬은 먼저 들어온 변수가 앞으로 가기 때문이다.
check in을 앞에 둔다면 10:10 check in 10:10 check out으로 꼬여 새로운 방을 내어주게 된다.
def time_convert(string) :
h, m = map(int, string.split(":"))
return h*60 + m
def solution(book_time):
s_list = [ (time_convert(s),1) for s,e in book_time]
e_list = [ (time_convert(e)+10,-1) for s,e in book_time]
book_list = sorted((e_list+s_list), key=lambda x:x[0])
answer = 0
book = 0
for t, c in book_list:
book += c
answer = max(answer, book)
return answer
다른 사람의 풀이
time table을 하나씩 구현하고 1씩 더한 풀이도 있었다.
def solution(book_time):
time_table = [0 for _ in range(60 * 24)]
for start, end in book_time:
start_minutes = 60 * int(start[:2]) + int(start[3:])
end_minutes = 60 * int(end[:2]) + int(end[3:]) + 10
if end_minutes > 60 * 24 - 1:
end_minutes = 60 * 24 - 1
for i in range(start_minutes, end_minutes):
time_table[i] += 1
return max(time_table)
728x90
'Coding Test > programmers' 카테고리의 다른 글
[Python] 파이썬 프로그래머스 H-index (0) | 2023.02.10 |
---|---|
[Python] 파이썬 프로그래머스 무인도 여행 (0) | 2023.02.09 |
[Python] 파이썬 프로그래머스 위장 (0) | 2022.11.24 |
[Python] 파이썬 프로그래머스 괄호 회전하기 (0) | 2022.11.22 |
[Python] 파이썬 프로그래머스 구명보트 (0) | 2022.11.17 |