ALGORITHM/Kakao

[Python] 주차 요금 계산

김쿸후 2022. 3. 8. 17:41

1. 문제

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

 

코딩테스트 연습 - 주차 요금 계산

[180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000]

programmers.co.kr

2. 코드

import math

def calc_time(in_time,out_time):
    in_time_list = in_time.split(":")
    out_time_list = out_time.split(":")
    in_time_to_min = int(in_time_list[0]) * 60 + int(in_time_list[1])
    out_time_to_min = int(wout_time_list[0]) * 60 + int(out_time_list[1])
    return out_time_to_min - in_time_to_min 


def calc_fee(time, fees):
    if time > fees[0]:
        # 소숫점 올림으로 계산 : math.ceil
        return fees[1] + ((math.ceil((time - fees[0]) / float(fees[2]))) * fees[3])
    else:
        return fees[1]
    
    
def solution(fees, records):
    answer = []
    time_list = []
    time_dict = {}
    for i in records:
        i_list = i.split(" ")
        if i_list[2] == "IN":
            element = []
            element.append(i_list[1])
            element.append(i_list[0])
            element.append("23:59")
            time_list.append(element)
        else :
            for j in time_list:
                if j[0] == i_list[1]:
                    time = calc_time(j[1],i_list[0])
                    time_list.remove(j)
                    if time_dict.get(j[0]) == None:  
                        time_dict[j[0]] = time
                    else:
                        value = time_dict[j[0]]
                        time_dict[j[0]] = value + time
                else: continue
                
    for i in time_list:
        time = calc_time(i[1],i[2])
        if time_dict.get(i[0]) == None:  
            time_dict[i[0]] = time
        else:
            value = time_dict[i[0]]
            time_dict[i[0]] = value + time

    time_dict = sorted(time_dict.items())
    
    for i in time_dict:
        answer.append(calc_fee(i[1],fees))
        
    return answer

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 양궁대회  (0) 2022.03.08
[Python] k진수에서 소수 개수 구하기  (0) 2022.03.08
[Python] 뉴스 클러스터링  (0) 2022.01.07
[Python] 다트 게임  (0) 2022.01.04
[Python] 2개 이하로 다른 비트  (0) 2021.10.09