알고리즘
*프로그래머스)뒤에 있는 큰 수 찾기-python
1일1공부실천하자
2023. 2. 4. 00:50
https://school.programmers.co.kr/learn/courses/30/lessons/154539
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(numbers):
answer = [-1] * len(numbers)
stack = []
for i in range(len(numbers)):
while stack and numbers[stack[-1]] < numbers[i]:
answer[stack.pop()] = numbers[i]
stack.append(i)
return answer
이 문제는 검색해서 푼 문제이다.
앞으론 검색해서 푼 문제는 제목 맨 앞에 *를 표시해 다시 풀어야 하는 것으로 표시하겠다.
가장 먼저 한 실수는 스택이 단순히 앞에서부터 담고 -1번째와 i+1번째를 비교한다는 고정관념이다.
이 방법은 i번째부터 하나씩 stack에 담고, 스택에 담긴 것과 i.
즉 i와 i-1를 비교하는 문제이다.