나중에 class로도 풀어보기
def solution(fees, records):
answer = []
# 차량별 정보로 바꾸기
car_dic, car_time_dic = dict(), dict()
for rec in records:
time_str, num, io = rec.split()
h, m = map(int, time_str.split(':'))
time = h * 60 + m
if io == 'IN':
car_dic[num] = time
elif io == 'OUT':
car_dic[num] = time - car_dic[num]
if num in car_time_dic:
car_time_dic[num] += car_dic[num]
else:
car_time_dic[num] = car_dic[num]
del car_dic[num]
for c in car_dic:
car_dic[c] = 1439 - car_dic[c]
if c in car_time_dic:
car_time_dic[c] += car_dic[c]
else:
car_time_dic[c] = car_dic[c]
car_fees = dict()
for car in car_time_dic:
if car_time_dic[car] <= fees[0]:
car_fees[car] = fees[1]
else:
if (car_time_dic[car] - fees[0])%fees[2] == 0:
car_fees[car] = fees[1] + ((car_time_dic[car] - fees[0])//fees[2])*fees[3]
else:
car_fees[car] = fees[1] + ((car_time_dic[car] - fees[0])//fees[2])*fees[3] + fees[3]
tm_car = list(car_fees.keys())
tm_car.sort()
for c in tm_car:
answer.append(car_fees[c])
return answer
if __name__ == '__main__':
records = ["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"]
fees = [180, 5000, 10, 600]
print('ans')
print(solution(fees, records))
'백준 & 프로그래머스' 카테고리의 다른 글
[PCCP 모의고사 #1] 3번 - 유전법칙 (0) | 2023.11.30 |
---|---|
프로그래머스.붕대감기.java (0) | 2023.11.28 |
백준.가운데를 말해요.1665.py (0) | 2023.10.06 |
백준.다각형의 면적.2103.java (0) | 2023.09.26 |
백준.DFS와 BFS.1260.py (0) | 2023.09.23 |
댓글