문제
https://school.programmers.co.kr/learn/courses/30/lessons/92341
# fees[0] = 기본시간(분) / [1] = 기본요금(원) / [2] = 단위시간(분) / [3] = 단위요금(원)
from math import ceil
# 시간을 분으로 만드는 함수 만들기
def to_minute(time):
hour, minute = map(int, time.split(":"))
return hour*60 + minute
def solution(fees, records):
nums = {}
for record in records:
times, num, IO = record.split(" ")
if num in nums:
nums[num].append([times, IO])
else:
nums[num] = [[times, IO]]
for num in nums:
time = 0
if len(nums[num]) % 2 != 0:
nums[num].append(["23:59", "OUT"])
for i in nums[num]:
if i[1] == "IN":
time -= to_minute(i[0])
else:
time += to_minute(i[0])
if time > fees[0]:
nums[num] = fees[1] + ceil((time - fees[0])/fees[2]) * fees[3]
else:
nums[num] = fees[1]
answer = [i[1] for i in sorted(nums.items())]
return answer
🔥 Keypoint
"12:59"을 '분'으로 바꾸는 방법
hour, minute = map(int, "12:59".split(":"))
return hour*60 + minute
map을 사용해서 int로 처리해주는 것을 한번에 해결
dictionary에서 key값을 기준으로 오름차순 정렬
sorted(num.items())
올림
from math import ceil