JH 개발 블로그
2022 카카오 코딩테스트 lv.2 주차 요금 계산 파이썬 본문
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 리스트에 추가해줍니다.
'코딩테스트 > 2022 KAKAO BLIND RECRUITMENT' 카테고리의 다른 글
2022 카카오 코딩테스트 lv.3 파괴되지 않은 건물 파이썬 (0) | 2022.02.02 |
---|---|
2022 카카오 코딩테스트 lv.3 양과 늑대 파이썬 (0) | 2022.02.01 |
2022 카카오 코딩테스트 lv.2 양궁대회 파이썬 (0) | 2022.02.01 |
2022 카카오 코딩테스트 lv.2 k진수에서 소수 개수 구하기 파이썬 (0) | 2022.01.30 |
2022 카카오 코딩테스트 lv.1 신고 결과 받기 파이썬 (0) | 2022.01.30 |
Comments