문제
코드
def changeStrToInt(time):
return int(time[0:2]) * 60 + int(time[3:])
def solution(book_time):
sort_time = sorted([[changeStrToInt(i[0]), changeStrToInt(i[1]) + 10] for i in book_time])
res = []
for i in sort_time:
if len(res)==0:
res.append(i)
continue
for j in range(len(res)):
if(i[0] >= res[j][1]):
res[j] = res[j]+i
break
else:
res.append(i)
return len(res)
풀이
- 빈틈없이 예약해서 최소의 방 개수를 구하자
- 문자열로 입력받은 시간을 분으로 그리고 int형으로 만들어주는 함수를 작성한다.
- 그 다음 변환한 시간을 바탕으로 정렬해준다
- 정렬한 시간을 바탕으로 res배열에 넣어준
- res배열이 비어 있으면 바로 넣어준다.
- res배열을 돌면서 각각의 res배열의 제일 마지막 시간이 현재 첫번째 시간보다 작으면 거기 넣어준다.
- 넣을 곳이 없으면 배열에 새롭게 추가한다.
- 방의 개수를 리턴해준다.
'알고리즘' 카테고리의 다른 글
[백준] 20006 랭킬전 대기열 python (0) | 2024.01.19 |
---|---|
[프로그래머스] 방문 길이 python (0) | 2024.01.18 |
[프로그래머스] 문자열 압축 python (1) | 2023.10.02 |
[프로그래머스] 튜플 Python (0) | 2023.10.02 |
[프로그래머스] 양궁 대회 Python (0) | 2023.10.02 |