https://programmers.co.kr/learn/courses/30/lessons/92341
import math
def solution(fees, records):
answer = []
timeDict = dict()
inDict = dict()
for line in records:
ts, cn, io = line.split()
t = ston(ts)
# 들어감
if io == "IN":
inDict[cn] = t # 들어간 시간
# 나옴
elif io == "OUT":
if cn not in timeDict:
timeDict[cn] = 0
timeDict[cn] += t - inDict.pop(cn) # 시간 계산
# 안나온거
for cn in inDict:
if cn not in timeDict:
timeDict[cn] = 0
timeDict[cn] += ston("23:59") - inDict[cn]
# 요금계산
cns = list(timeDict.keys())
cns.sort()
for cn in cns:
tt = timeDict[cn]
ff = 0
if tt <= fees[0]: # 기본요금
ff = fees[1]
answer.append(ff)
else: # 추가요금
ff = fees[1] # 기본
tt -= fees[0] # 추가시간
mm = math.ceil(tt / fees[2]) # 추가요금몫
ff += mm * fees[3]
answer.append(ff)
return answer
def ston(string):
hs, ms = string.split(":")
h = int(hs)
m = int(ms)
return m + h * 60