범위가 상당히 넓기 때문에 일반적인 탐색법은 시간 초과에 걸린다.
def solution(numbers):
answer = []
for i in range(len(numbers) - 1):
flag = False
for j in range(i, len(numbers) - 1):
if numbers[i] < numbers[j+1]:
answer.append(numbers[j+1])
flag = True
break
if not flag:
answer.append(-1)
answer.append(-1)
return answer
def solution(numbers):
answer = [-1] * len(numbers)
stack = []
for i in range(len(numbers) - 1, -1, -1):
while stack and stack[-1] <= numbers[i]:
stack.pop()
if stack:
answer[i] = stack[-1]
stack.append(numbers[i])
return answer