본문 바로가기
Study/코딩테스트

[프로그래머스 / 2022 KAKAO BLIND RECRUITMENT / Python] 주차 요금 계산

by 까다로운오리 2022. 2. 7.

문제 설명

 

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

[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

 

문제 풀이

import math

def solution(fees, records):
    answer = []
    dic1 = {}
    dic2 = {}
    
    for i in records:
        time,num,state = i.split(" ")
        h, m = time.split(":")
        time = int(h)*60+int(m)
        if state == "IN":
            if num not in dic2.keys():
                dic2[num] = 0
            dic1[num] = time
            
        if state == "OUT":
            dic2[num] += (time - dic1[num])
            del dic1[num]
    
    for key,value in dic1.items():
        dic2[key] += (23*60+59) - value
    
    dic2 = sorted(dic2.items())
    
    for lst in dic2:
        if lst[1] - fees[0] <= 0:
            answer.append(fees[1])
        else:
            answer.append(fees[1]+((math.ceil(int(lst[1]-fees[0])/fees[2]))*fees[3]))
        
        
    return answer

 

풀이과정


백신3차로 컨디션 내앤조.... (승헌쓰 비염 참고)
빨리 컨디션 회~복 하고 코드 예쁘게 바꿔놓을께욤..^_^