from math import ceil
def solution(fees, records):
basic_time = fees[0]
basic_fee = fees[1]
additinoal_time = fees[2]
additional_fee = fees[3]
car_dict = {}
for record in records:
time, car, in_out = record.split()
if car in car_dict:
car_dict[car].append(time)
else:
car_dict[car] = [time]
car_fee_dict = {}
for car in car_dict.keys():
for i in range(0, len(car_dict[car]), 2):
if i == len(car_dict[car])-1:
in_hour, in_minute = car_dict[car][i].split(':')
total_minute = 23 * 60 + 59 - int(in_hour) * 60 - int(in_minute)
else:
in_hour, in_minute = car_dict[car][i].split(':')
out_hour, out_minute = car_dict[car][i+1].split(':')
total_minute = int(out_hour) * 60 + int(out_minute) - int(in_hour) * 60 - int(in_minute)
if car in car_fee_dict:
car_fee_dict[car] += total_minute
else:
car_fee_dict[car] = total_minute
if car_fee_dict[car] <= basic_time:
car_fee_dict[car] = basic_fee
else:
car_fee_dict[car] = basic_fee + ceil((car_fee_dict[car]-basic_time)/additinoal_time)*additional_fee
sorted_keys = sorted(car_fee_dict.keys())
answer = [car_fee_dict[key] for key in sorted_keys]
return answer
풀기는 풀었는데.. 이게 맞나 싶다 너무 길어서 ㅠ
그래서 지금 다른 사람 코드 보고있다..
'조열심 카테고리 > 알고리즘' 카테고리의 다른 글
| [프로그래머스] 실패율 (0) | 2022.10.12 |
|---|---|
| [프로그래머스] 두 큐 합 같게 만들기 (0) | 2022.10.12 |
| [프로그래머스] 행렬의 곱 (0) | 2022.09.29 |
| [프로그래머스] 모음사전 (0) | 2022.09.27 |
| [프로그래머스] 위장 (0) | 2022.09.27 |