프로그래머스 주차요금 계산

DARTZ·2022년 6월 2일
0

알고리즘

목록 보기
82/135
import math

def solution(records, fees):

    parking_area = {}
    times = {}

    time_gap = 0
    answer = []

    for record in records:
        time, num, state = map(str, record.split())

        if state == 'IN':
            parking_area[num] = time

        else:
            in_time_hour, in_time_minute = map(int, parking_area[num].split(':'))
            out_time_hour, out_time_minute = map(int, time.split(':'))

            if out_time_minute == 0:
                out_time_minute = 60
                out_time_hour -= 1

            time_gap = (out_time_hour - in_time_hour) * 60 + out_time_minute - in_time_minute

            if num in times:
                times[num] += time_gap

            else:
                times[num] = time_gap

            parking_area[num] = '23:59'

    for car in parking_area:
        in_time_hour, in_time_minute = map(int, parking_area[car].split(':'))

        time_gap = (23 - in_time_hour) * 60 + 59 - in_time_minute

        if num in times:
            times[car] += time_gap

        else:
            times[car] = time_gap

    sorted(times.items())

    for car_number in times:
        if times[car_number] <= fees[0]:
            answer.append(fees[1])

        else:
            fee = fees[1] + math.ceil(((times[car_number] - fees[0]) / fees[2])) * fees[3]
            answer.append(fee)

    return answer
profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글