✏️ 코테 준비 프로그래머스 풀기
주식 가격
def solution(prices):
answer = []
for i in range(0,len(prices)):
ans = 0
for j in range(i+1,len(prices)):
if prices[j]<prices[i]:
ans+=1
break
else:
ans+=1
answer.append(ans)
return answer
def solution(prices):
answer = [0]*len(prices)
stack = [0]
for i in range(1,len(prices)):
if prices[i] > prices[i-1]:
stack.append(i)
else:
while(len(stack)>0 and prices[i] < prices[stack[-1]]):
idx = stack.pop()
answer[idx] = i-idx
stack.append(i)
for i in stack:
answer[i] = len(prices)-(i+1)
return answer
주차 요금 계산
import math
def solution(fees, records):
answer = []
time_record = {}
fee_record = {}
for i in records:
time,car,status = map(str,i.split())
minute = 60*int(time[:2])+int(time[3:])
if status == "IN":
if car in time_record:
time_record[car][0] += minute
time_record[car][2] +=1
else:
time_record[car] = [minute,0,1,0]
elif status =="OUT":
time_record[car][1] += minute
time_record[car][3] +=1
for car,record in time_record.items():
if record[3] != record[2]:
result = (60*23 + 59 + record[1]) -record[0]
else:
result = record[1]-record[0]
if result <=fees[0]:
fee_record[car] = fee_record.get(car,0) + fees[1]
else:
fee_record[car] = fee_record.get(car,0) + fees[1] + math.ceil((result-fees[0])/fees[2]) * fees[3]
fee_record = sorted(fee_record.items(), key = lambda x: x[0])
for i in fee_record:
answer.append(i[1])
return answer