요금표
기본 시간(분) | 기본 요금(원) | 단위 시간(분) | 단위 요금(원) |
---|---|---|---|
180 | 5000 | 10 | 600 |
입/출차 기록
시각(시:분) | 차량 번호 | 내역 |
---|---|---|
05:34 | 5961 | 입차 |
06:00 | 0000 | 입차 |
06:34 | 0000 | 출차 |
07:59 | 5961 | 출차 |
07:59 | 0148 | 입차 |
18:59 | 0000 | 입차 |
19:09 | 0148 | 출차 |
22:59 | 5961 | 입차 |
23:00 | 5961 | 출차 |
import math
def solution(fees, records):
li=[]
number=dict()
for i in range(len(records)):
a=records[i].split()
li.append(a)
number[a[1]]=0
li[i][0]=[int(a[0][:2]),int(a[0][3:5])]
for i in range(len(li)):
out=True
if li[i][2]!='x':
for j in range(i+1,len(li)):
if li[j][2]!='x':
if li[i][1]==li[j][1]:
m = (li[j][0][0]-li[i][0][0])*60+(li[j][0][1]-li[i][0][1])
li[j][2],li[i][2]='x','x'
number[li[i][1]] += m
out=False
break
if out:
m = (23-li[i][0][0])*60+(59-li[i][0][1])
number[li[i][1]] += m
for i,k in enumerate(number):
if number[k] < fees[0]: # 기본시간보다 작을때
number[k] = fees[1]
else:
number[k] = math.ceil((number[k]-fees[0])/fees[2])*fees[3]+fees[1]
return [number[i] for i in sorted(number)]