Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- colab
- k8s
- AQE
- CI/CD
- etl
- Docker
- 빅데이터
- aws
- Kubernetes
- Spark Partitioning
- backfill
- Salting
- Airflow
- DataFrame Hint
- Spark SQL
- spark executor memory
- Dag
- Spark
- mysql
- Speculative Execution
- redshift
- disk spill
- Kafka
- SQL
- 데이터 파이프라인
- Spark 실습
- KDT_TIL
- topic
- off heap memory
- Spark Caching
Archives
- Today
- Total
JUST DO IT!
[CT] 주차 요금 계산 본문
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/92341
풀이
import math
# 요금 계산 함수
def Cal_fees(fees,minutes):
return fees[1] + math.ceil(max(0, (minutes - fees[0])) / fees[2]) * fees[3]
def solution(fees, records):
inCarDic = {}
feeDic = {}
#입차 내역 등록 및 출차 차량 주차시간 계산
for e in records:
elist = e.split(" ")
hour, minute = elist[0].split(":")
TotalMinute = int(hour) * 60 + int(minute) # 시간을 분으로 환산
if elist[1] not in inCarDic: # 해당 차번호의 내역이 없으면
inCarDic[elist[1]] = TotalMinute # "차번호" : "시간" 등록
else : # 해당 차번호의 내역이 있으면
MinuteForFee = TotalMinute - inCarDic[elist[1]] # 주차시간 계산
if elist[1] not in feeDic:
feeDic[elist[1]] = MinuteForFee
else:
feeDic[elist[1]] += MinuteForFee
del inCarDic[elist[1]] # 입차 내역에서 삭제
# 입차 내역에 남은 차의 주차비 계산
for carNum, minutes in inCarDic.items():
MinuteForFee = 23*60+59 - minutes
if carNum not in feeDic:
feeDic[carNum] = MinuteForFee
else:
feeDic[carNum] += MinuteForFee
return [Cal_fees(fees, minutes) for car, minutes in sorted(feeDic.items())]
고쳐야 할 점 🤤
- 코드의 가독성 신경쓰기
- elist[1], elist[0] 등 사용 자제
- ex) elist = e.split(" ") ==> carNum, minutes = e.split(" ")
- 시간 계산 유연하게 하기
- 문제에서 제시하는 조건 꼼꼼하게 읽기..
참고했던 블로그 : https://latte-is-horse.tistory.com/326