와이유스토리

[문자열] 프로그래머스 주차 요금 Python 본문

코딩테스트/문자열

[문자열] 프로그래머스 주차 요금 Python

유(YOO) 2023. 1. 21. 14:33
def solution(fees, records):
    answer = []
    cars = [] # 차량번호
    costs = {} # 요금
    times = {} # 입차시간
    
    for r in records:
        if r[11:13] == "IN":
            if r[6:10] not in cars:
                cars.append(r[6:10])
            times[r[6:10]] = int(r[0:2])*60+int(r[3:5])
        else:
            if r[6:10] not in costs:
                costs[r[6:10]] = 0
            extra = int(r[0:2])*60+int(r[3:5]) - times[r[6:10]]
            if extra > 0:
                costs[r[6:10]] += extra
            times[r[6:10]] = -1
    
    cars.sort()
    for c in cars:
        if c not in costs: # 한 번도 출차하지 않은 차
            costs[c] = 0
        if times[c] != -1: # 마지막으로 출차하지 않은 차
            costs[c] += (23*60+59 - times[c])
        if costs[c] > fees[0]:
            extra = (int)((costs[c] - fees[0]) / fees[2])
            if ((costs[c] - fees[0]) % fees[2]) != 0:
                extra += 1
            costs[c] = fees[1] + extra * fees[3]
        else: costs[c] = fees[1]
        answer.append(costs[c])
    
    return answer
Comments