[프로그래머스] 주차 요금 계산 (파이썬)

Y_Sevin·2022년 1월 18일
0

Programmers

목록 보기
3/14
post-custom-banner

문제링크

입력

요금표

기본 시간(분)기본 요금(원)단위 시간(분)단위 요금(원)
180500010600

입/출차 기록

시각(시:분)차량 번호내역
05:345961입차
06:000000입차
06:340000출차
07:595961출차
07:590148입차
18:590000입차
19:090148출차
22:595961입차
23:005961출차

코드

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)]
profile
매일은 아니더라도 꾸준히 올리자는 마음으로 시작하는 개발블로그😎
post-custom-banner

0개의 댓글