def solution(prices):
answer = []
while prices:
time = 0
now = prices.pop(0)
for i in prices:
if now > i:
time += 1
break
if now <= i:
time += 1
answer.append(time)
return answer
def solution(prices):
answer = []
for i in range(len(prices)):
time = 0
for j in range(i + 1, len(prices)):
if prices[i] > prices[j]:
time += 1
break
else:
time += 1
answer.append(time)
return answer
from collections import deque
def solution(prices):
answer = []
prices = deque(prices)
while prices:
time = 0
now = prices.popleft()
for i in prices:
if now > i:
time += 1
break
else:
time += 1
answer.append(time)
return answer
⇒ deque의 popleft와 while을 사용하는 게 효율성 테스트에서 시간이 빨랐다.
def solution(prices):
stack = []
answer = [0] * len(prices)
for i in range(len(prices)):
while stack != [] and stack[-1][1] > prices[i]:
past, _ = stack.pop()
answer[past] = i - past
stack.append([i, prices[i]])
for i, s in stack:
answer[i] = len(prices) - 1 - i
return answer