Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

JH 개발 블로그

2022 카카오 코딩테스트 lv.2 주차 요금 계산 파이썬 본문

코딩테스트/2022 KAKAO BLIND RECRUITMENT

2022 카카오 코딩테스트 lv.2 주차 요금 계산 파이썬

쿠우우훈 2022. 1. 31. 21:53
from collections import defaultdict
import math

def time_to_minutes(time):
    time = time.split(':')
    return 60*int(time[0]) + int(time[1])

def solution(fees, records):
    cars = defaultdict(list)
    answer = []
    for record in records:
        record = record.split()
        time = time_to_minutes(record[0])
        cars[int(record[1])].append(time)

    for num in sorted(cars.keys()):
        if len(cars[num])%2 != 0:
            cars[num].append(1439)
        sum_time = 0
        fee = fees[1]
        for i in range(len(cars[num])-1,-1,-2):
            sum_time += cars[num][i] - cars[num][i-1]
        if sum_time > fees[0]:
            fee += (math.ceil((sum_time-fees[0])/fees[2]))*fees[3]
        answer.append(fee)
    return answer

 

1. cars[차 번호] 에 IN,OUT 한 시간을 모두 넣어줍니다.

이때 시간은 HH:MM 형태이므로 정수로 바꿔서 넣어줍니다.

 

2. 차량번호가 작은 차부터 총 주차 시간을 구합니다.

만약 cars[num]의 길이가 홀수라면 23:59에 출차한 내역이 안들어가 있으므로 추가해줍니다.

 

3. 요금을 계산하고 answer 리스트에 추가해줍니다.

Comments