ol-rlo-zl
[프로그래머스 lv2] 주차 요금 계산 - 파이썬(Python) 본문
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
def solution(fees, records):
lst = []
dic = {}
result = []
def time(in_time, out_time):
in_h, in_m = map(int,in_time.split(':'))
out_h, out_m = map(int,out_time.split(':'))
if in_m > out_m:
out_h -= 1
out_m += 60
return (out_m-in_m) + 60*(out_h-in_h)
for r in records:
if r[-2:] == 'IN':
lst.append(r)
else:
for l in lst:
if l[6:10] == r[6:10]:
if l[6:10] in dic:
dic[l[6:10]] += time(l[:5],r[:5])
else:
dic[l[6:10]] = time(l[:5],r[:5])
lst.remove(l)
while lst:
for l in lst:
if l[6:10] in dic:
dic[l[6:10]] += time(l[:5],'23:59')
else:
dic[l[6:10]] = time(l[:5],'23:59')
lst.remove(l)
res = sorted(dic.items())
for c, t in res:
if t <= fees[0]:
result.append(fees[1])
else:
if (t-fees[0]) % fees[2] == 0:
result.append(fees[1] + (t-fees[0])/fees[2] * fees[3])
else:
result.append(fees[1] + (int((t-fees[0])/fees[2])+1) * fees[3])
return result
결과
'Programmers(Python)' 카테고리의 다른 글
[프로그래머스 lv2] 주식 가격 - 스택/큐 - 파이썬(Python) (0) | 2023.04.04 |
---|---|
[프로그래머스 lv2] 오픈채팅방 - 파이썬(Python) (0) | 2023.04.04 |
[프로그래머스 lv2] [3차] n진수 게임 - 파이썬(Python) (0) | 2023.04.03 |
[프로그래머스 lv2] k진수에서 소수 개수 구하기 - 파이썬(Python) (0) | 2023.03.27 |
[프로그래머스 lv2] 전화번호 목록 - 파이썬(Python) (0) | 2023.03.27 |