프로그래머스
2022 KAKAO BLIND RECRUITMENT
주차 요금 계산
import math
def calMin(intime,outtime):
intime=intime.split(':')
outtime=outtime.split(':')
in_min=int(intime[0])*60+int(intime[1])
out_min=int(outtime[0])*60+int(outtime[1])
return out_min-in_min
def getFee(total_min,fixedTime,fixedFee,variTime,variFee):
if total_min-fixedTime <= 0:
fee=fixedFee
else:
fee=fixedFee+math.ceil((float(total_min-fixedTime)/float(variTime)))*variFee
return fee
def solution(fees, records):
answer = []
r_table={}
f_time,f_fee,v_time,v_fee=fees
for l in records:
record=l.split(' ')
if r_table.get(record[1]) is None:
r_table[record[1]]={}
r_table[record[1]]['in']=''
r_table[record[1]]['min']=0
if record[2]=='IN':
r_table[record[1]]['in']=record[0]
else:
if record[2] != 'IN':
r_table[record[1]]['min']+=calMin(r_table[record[1]]['in'],record[0])
r_table[record[1]]['in']=''
else:
r_table[record[1]]['in']=record[0]
for i in sorted(r_table):
if r_table[i]['in'] !='':
r_table[i]['min']+=calMin(r_table[i]['in'],'23:59')
r_table[i]['in']=''
answer.append(int(getFee(r_table[i]['min'],f_time,f_fee,v_time,v_fee)))
return answer
문제를 제대로 보자.
좀 더 코드를 단순화 해보자.