코딩 테스트/프로그래머스

Lv2. 주차 요금 계산

  • -
728x90
반응형

문제 보기 :  주차 요금 계산

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문제

  • 정답률 : 59%


작성 코드

import math
def solution(fees, records):    
    car = {} ; times = {} ; money = {}
    for re in records:
        time, carnum, inout = re.split()
        if inout == 'IN':
            car[carnum] = time
            if carnum not in money:
                times[carnum]=0
                money[carnum]=0
        elif inout == 'OUT':
            intime = car[carnum]
            during = (int(time[:2])-int(intime[:2]))*60 + (int(time[3:])-int(intime[3:])) #주차시간
            times[carnum] += during
            del car[carnum] 
            
    time = "23:59"
    for carnum in car.keys():
        intime = car[carnum]
        during = (int(time[:2])-int(intime[:2]))*60 + (int(time[3:])-int(intime[3:])) #주차시간
        times[carnum] += during
    # return times

    for carnum in times.keys():
        during = times[carnum]
        if during <= fees[0]:
                money[carnum] += fees[1]
        else:
            pay = fees[1] + (math.ceil((during-fees[0])/fees[2])*fees[3])
            money[carnum] += pay
            
    answer = []
    keyss = list(money.keys())
    keyss.sort()
    for i in keyss:
        answer.append(money[i])

    return answer

풀이

Lv2 치곤 생각보다 쉬운 편이다.

딕셔너리 자유자재로 쓸 수 있으면 쉽게 풀 듯

320x100
728x90

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

Lv2. 택배상자  (1) 2024.09.10
Lv1. 문자열 나누기  (0) 2024.09.09
Lv1. 둘만의 암호  (0) 2024.09.05
Lv3. 단어 변환  (0) 2024.09.04
Lv2. 숫자 변환하기  (0) 2024.09.03
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.