728x90
320x100
# 주차 요금 계산
import math
def solution(fees, records):
answer = []
# 차량마다 입출차 시간을 기록 하기 위한 배열
inTime = [0] * 10000
# 차량마다 입출차 여부를 기록하기 위한 배열
inIn = [0] * 10000
# 차량마다 주차시간을 기록하기 위한 배열
sumT = [0] * 10000
for record in records:
# 주차시간, 차량번호, 입출차여부를 쪼갠다
a, b, c = record.split()
# 주차시간 계산을 위해 시, 분을 쪼갠다
h, m = a.split(':')
# 차량이 입차했을 때
if c == 'IN':
# 입차시간을 분으로 환산하여 기록
inTime[int(b)] = int(h) * 60 + int(m)
# 입차여부를 기록
inIn[int(b)] = 1
# 차량이 출차 했을 때
else:
# (출차시간 - 입차시간)을 계산하여 주차시간을 기록
sumT[int(b)] += (int(h) * 60 + int(m) - inTime[int(b)])
for i in range(10000):
if inIn[i] == 1:
# 출차된 기록이 없을 때 23:59로 출차하여 주차요금 계산
sumT[i] += (23*60+59) - inTime[i]
for i in range(10000):
# 주차기록이 있는 차량만 주차요금 계산하여 배열에 담는다.
if sumT[i] > 0:
answer.append(fees[1] + max(math.ceil((sumT[i] - fees[0]) / fees[2]), 0) * fees[3])
return answer
728x90
320x100
'💻 하나씩 차곡차곡 > 프로그래머스 (Python)' 카테고리의 다른 글
[Lv.3] 단속 카메라 (0) | 2023.04.27 |
---|---|
[Lv.1] 보석 쇼핑 (0) | 2023.04.26 |
[LV.1] 신고 결과 받기 (0) | 2023.03.22 |
코딩테스트 입문 Day25 - 종이 자르기, 문자열 밀기, 다음에 올 숫자, 연속된 수의 합 (0) | 2023.03.21 |
코딩테스트 입문 Day24 - 치킨 쿠폰, 이진수 더하기, k의 개수, A로 B 만들기 (0) | 2023.03.20 |