728x90
https://school.programmers.co.kr/learn/courses/30/lessons/17678
💡 문제 풀이
구현 문제이다.
조심해서 구현만 할 수 있으면 된다.
시간에 대한 처리를 위해서 "hour : minute"으로 나오는 시간을 분으로 바꿔주는 함수를 만들어 사용한다.
중요한 핵심은 다음과 같다.
마지막 버스에 탄 인원이 m명과 같다면 마지막에 온 사람보다 1분 빨리 오면 되고,
마지막 버스에 탄 인원이 m명과 다르다면 그냥 버스 막차시간에 맞춰서 오면 된다.
내 코드의 경우는 처음 시작시간(shuttleBust)에서 더하면서 계산돼서 1번 더 더해진 경우를 빼줘야 한다.
✔️ 느낀 점
보자마자 쉽겠는데..? 했는데 막상 풀어보니까 머리가 복잡한 문제였다.
💻 코드
# LocalTime <-> minute 변환
def convert(time):
if type(time) == int:
h = time // 60
m = time % 60
return str(h).zfill(2) + ":" + str(m).zfill(2)
else:
h, m = time.split(":")
return int(h) * 60 + int(m)
def solution(n, t, m, timetable):
# 셔틀 버스 시간
shuttleBus = convert("09:00")
newTimetable = [convert(time) for time in timetable]
newTimetable.sort()
# 마지막에 탄 사람 시간, 마지막 버스에 탄 사람 수
lastCrew, lastCnt = 0, 0
for _ in range(n):
cnt = 0
while newTimetable and cnt < m and newTimetable[0] <= shuttleBus:
lastCrew = newTimetable.pop(0)
cnt += 1
lastCnt = cnt
shuttleBus += t
return convert(lastCrew - 1) if lastCnt == m else convert(shuttleBus - t)
'문제 풀이 > 프로그래머스 (Programmers)' 카테고리의 다른 글
[Python] 프로그래머스 : 기지국 설치 (0) | 2022.10.09 |
---|---|
[Python] 프로그래머스 : [3차] 압축 (1) | 2022.10.06 |
[Python] 프로그래머스 : 다단계 칫솔 판매 (0) | 2022.09.29 |
[Python] 프로그래머스 : 두 개 뽑아서 더하기 (2) | 2022.07.06 |
[Python] 프로그래머스 : 모의고사 (0) | 2022.07.05 |
댓글