def solution(fees, records):
answer=[]
time_dic = {} #각 차별로 얼마나 있었는지 기록할 딕셔너리
#기록
for record in records:
raw = record.split()
time = int(raw[0].split(':')[0])*60 + int(raw[0].split(':')[1])
car = int(raw[1])
if time_dic.get(car):
if raw[2] == "OUT":
time_dic[car] += time
else:
time_dic[car] -= time
else:
time_dic[car] = -time
#안나왔으면 23:59에 나온걸로 찍음
for car in time_dic:
if time_dic[car] <=0:
time_dic[car]+=1439
#정렬해서 해답출력
for car in sorted(time_dic):
answer.append(cal_fee(fees,time_dic[car]))
return answer
#시간별로 가격 계산해줄 함수
def cal_fee(fees,time):
if time<fees[0]:
return fees[1]
else:
return fees[1]-((fees[0]-time)//fees[2])*fees[3]
어디서 테스트케이스 에러가 난건지 모르겠네요
봐드렸읍니다 ㅇㅅㅇ - 관악구 서원동 사는 한솔근 010-8314-7957
감사합니다
왜 fees[1] - 빼기임?
올림하려고..
in 일때 왜 뺌 0으로 초기화하는거아님?
in 일때 시각을 빼고 out일때 시각을 더해서 최종 시간을 구했습니다
올림하려면 math.ceil같은걸 쓰는게 더 직관적일거가틈 - dc App
그렇긴하지 라이브러리 안쓰고 짧게하려면 저렇게 하면됨
return fees[1]-((fees[0]-time)//fees[2])*fees[3] 여기 - 맞냐
a//b <- 이게 내림이고, -(-a//b) <- 이렇게 하면 올림나옴
누가 -(-a//b)처럼 코딩함 ..
(a+b-1)/b 처럼 코딩하셈.
둘다 정수면 그거도 좋네요