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으로 풀어야 시간 초과 없이 통과 가능하다.
'[개발]programmers > Python3' 카테고리의 다른 글
Lv.3_불량사용자 (0) | 2024.07.11 |
---|---|
Lv.3_스티커모으기(2) (0) | 2024.07.11 |
Lv.3_기지국 설치 (1) | 2024.06.04 |
Lv.3_단속카메라 (0) | 2024.06.03 |
Lv.3_등굣길 (0) | 2024.05.30 |