일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 편스토랑 우승상품
- Kaggle
- github
- 편스토랑
- 프로그래머스
- 데이콘
- 맥북
- 백준
- AI 경진대회
- Real or Not? NLP with Disaster Tweets
- 캐치카페
- leetcode
- Docker
- Git
- 코로나19
- 프로그래머스 파이썬
- gs25
- hackerrank
- PYTHON
- ubuntu
- 우분투
- dacon
- 금융문자분석경진대회
- Baekjoon
- SW Expert Academy
- 자연어처리
- 더현대서울 맛집
- ChatGPT
- programmers
- 파이썬
- Today
- Total
솜씨좋은장씨
[Programmers] 2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산 (Python) 본문
[Programmers] 2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산 (Python)
솜씨좋은장씨 2022. 1. 19. 22:26
코딩 1일 1문제! 오늘의 문제는 프로그래머스의 2022년 카카오 블라인드 채용 코딩테스트 문제였던 주차 요금 계산 입니다.
코딩테스트 연습 - 주차 요금 계산
[180, 5000, 10, 600] ["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"] [14600, 34400, 5000]
programmers.co.kr
👨🏻💻 문제 풀이
어느 주차장의 입차, 출차 정보와 주차장의 요금표 정보를 입력 받으면
주차장을 이용한 차량들의 주차요금을 계산하는 문제입니다.
입차 출차 시간을 계산 하는데에는 python datetime의 strptime을 활용했습니다.
2022.01.19 - [Programming/Python] - [Python] datetime의 strptime을 활용하여 시간과 시간 사이의 차이 구하는 방법
[Python] datetime의 strptime을 활용하여 시간과 시간 사이의 차이 구하는 방법
개발을 하다 보면 종종 특정 시간과 특정 시간 사이에 얼마나 많은 시간이 흘렀는지 구해야 할 경우가 있습니다. 직접 시간을 계산하는 코드를 작성해도 되지만 2시 39분 -> 5시 25분 까지 얼마나
somjang.tistory.com
👨🏻💻 코드 (Solution)
from datetime import datetime
def solution(fees, records):
answer = []
parking_dict, fee_dict = {}, {}
last_out_time = datetime.strptime("23:59:00", "%H:%M:%S")
for record in records:
parking_time, car_number, in_out = record.split()
parking_time = datetime.strptime(f"{parking_time}:00", "%H:%M:%S")
if car_number not in parking_dict.keys():
parking_dict[car_number] = []
parking_dict[car_number].append(parking_time)
for car_num_key in parking_dict.keys():
park_time, car_parking_fee = 0, 0
is_more_fee, more_fee_time = False, 0
in_out_time_len = len(parking_dict[car_num_key])
if in_out_time_len % 2 == 1:
parking_dict[car_num_key].append(last_out_time)
in_out_time_len += 1
for i in range(in_out_time_len // 2):
park_time += (parking_dict[car_num_key][2*(i-1)+1] - parking_dict[car_num_key][2*(i-1)]).seconds // 60
if park_time - fees[0] > 0:
is_more_fee = True
more_fee_time = (park_time - fees[0]) / fees[2]
if more_fee_time != int(more_fee_time):
more_fee_time = int(more_fee_time) + 1
car_parking_fee = fees[1] + more_fee_time * fees[3]
fee_dict[car_num_key] = int(car_parking_fee)
answer = [fee[1] for fee in sorted(fee_dict.items(), key=lambda x: x[0])]
return answer

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[BaekJoon] 1037번 : 약수 (Python) (0) | 2022.01.21 |
---|---|
[BaekJoon] 2985번 : 세 수 (Python) (0) | 2022.01.20 |
[Programmers] 2022 KAKAO BLIND RECRUITMENT - 신고 결과 받기 (Python) (0) | 2022.01.18 |
[BaekJoon] 1453번 : 피시방 알바 (Python) (0) | 2022.01.17 |
[BaekJoon] 18108번 : 1998년생인 내가 태국에서는 2541년생?! (Python) (0) | 2022.01.16 |