[개발]programmers/Python3
Lv.2_뒤에 있는 큰 수 찾기
dowon
2024. 10. 2. 11:25
https://school.programmers.co.kr/learn/courses/30/lessons/154539
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(numbers):
answer = []
for i in range(len(numbers)-1):
exist = False
for j in range(i+1, len(numbers)):
if numbers[i] < numbers[j]:
answer.append(numbers[j])
exist = True
break
if not exist:
answer.append(-1)
answer.append(-1)
return answer
초반 코드로 작성 시에는 시간초과가 발생한다.
def solution(numbers):
answer = [-1] * len(numbers)
stack = []
for idx, num in enumerate(numbers):
while stack and numbers[stack[-1]] < num:
i = stack.pop()
answer[i] = num
stack.append(idx)
return answer
stack으로 풀어야 시간 초과 없이 통과 가능하다.