Q1) 문제를 어떻게 이해했나요?
A1)
입력 → fees: [기본 시간, 기본 요금, 단위 시간, 단위 요금], records: "HH:MM 차량번호 IN/OUT" 형태의 리스트
출력 → 차량 번호 오름차순으로, 각각의 최종 주차 요금 리스트 반환
규칙 → 입차 후 출차 기록이 없으면 23:59에 출차된 것으로 간주, 누적 주차 시간 계산 후: 기본시간 이하면 기본요금, 초과시간은 단위시간으로 올림 계산하여 요금 부과
Q2) 문제를 어떻게 풀 예정인가요?
A2)
단계 1: 문자열을 분리해서 시각/차량번호/상태로 파싱
단계 2: 입차 시각은 저장하고, 출차 시 총 누적 시간을 저장
단계 3: 입차만 하고 출차 안 된 차량은 23:59 출차로 간주
단계 4: 차량 번호를 기준으로 정렬 후 요금 계산
from math import ceil
from collections import defaultdict
def time_to_minutes(t):
h, m = map(int, t.split(":"))
return h * 60 + m
def solution(fees, records):
basic_time, basic_fee, unit_time, unit_fee = fees
in_record = dict()
total_time = defaultdict(int)
for record in records:
time, number, status = record.split()
time = time_to_minutes(time)
if status == "IN":
in_record[number] = time
else: # "OUT"
in_time = in_record.pop(number)
total_time[number] += time - in_time
# 출차 기록 없는 차량 처리
for number, in_time in in_record.items():
total_time[number] += time_to_minutes("23:59") - in_time
result = []
for number in sorted(total_time.keys()):
t = total_time[number]
if t <= basic_time:
result.append(basic_fee)
else:
extra = ceil((t - basic_time) / unit_time)
result.append(basic_fee + extra * unit_fee)
return result
[추천 강의✨]
38군데 합격 비법, 2025 코딩테스트 필수 알고리즘| 딩코딩코 - 인프런 강의
현재 평점 5.0점 수강생 2,019명인 강의를 만나보세요. 초보자도 쉽게 이해하는 단계별 설명으로, 막연했던 코딩 테스트가 명확해집니다. 필요한 것만 배우고 바로 실전에 적용하세요! 알고리즘,
www.inflearn.com
6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법| 딩코딩코 - 인
현재 평점 5.0점 수강생 457명인 강의를 만나보세요. 모든 이력서가 비슷해 보이는 세상, ‘차별화’가 합격을 만듭니다. 6주간, 백엔드 실무자가 직접 전하는 실전 이력서 전략 4가지를 배우세요.
www.inflearn.com
728x90
반응형
'Algorithm' 카테고리의 다른 글
| [카카오 코테 2022 | python] 두 큐 합 같게 만들기 (0) | 2025.06.25 |
|---|---|
| [카카오 코테 2018 | python] [1차] 프렌즈4블록 (0) | 2025.06.25 |
| [카카오 코테 2018 | python] 파일명 정렬 (0) | 2025.06.23 |
| [카카오 코테 2019 | python] 크레인 인형뽑기 게임 ✅ (1) | 2025.06.23 |
| [백준] Input 처리 방법 (0) | 2025.06.23 |