주차 요금 계산

Ja L·2022년 12월 30일
0

문제
https://school.programmers.co.kr/learn/courses/30/lessons/92341

# fees[0] =  기본시간(분) / [1] = 기본요금(원) / [2] = 단위시간(분) / [3] = 단위요금(원)
from math import ceil

# 시간을 분으로 만드는 함수 만들기
def to_minute(time):
    hour, minute = map(int, time.split(":"))
    return hour*60 + minute
    

def solution(fees, records):  
    nums = {}

    for record in records:
        times, num, IO = record.split(" ")
        if num in nums:
            nums[num].append([times, IO])
        else:
            nums[num] = [[times, IO]]

    
    for num in nums:
        time = 0 
        if len(nums[num]) % 2 != 0:
            nums[num].append(["23:59", "OUT"])
            
        for i in nums[num]:
            if i[1] == "IN":
                time -= to_minute(i[0])
            else:
                time += to_minute(i[0])
        if time > fees[0]:
            nums[num] = fees[1] + ceil((time - fees[0])/fees[2]) * fees[3]
        else:
            nums[num] = fees[1]

    answer = [i[1] for i in sorted(nums.items())]

    return answer

🔥 Keypoint

  1. "12:59"을 '분'으로 바꾸는 방법
    hour, minute = map(int, "12:59".split(":"))
    return hour*60 + minute
    map을 사용해서 int로 처리해주는 것을 한번에 해결

  2. dictionary에서 key값을 기준으로 오름차순 정렬
    sorted(num.items())

  3. 올림
    from math import ceil

profile
DB Engineer

0개의 댓글