반응형
코딩테스트 연습 - 뒤에 있는 큰 수 찾기 | 프로그래머스 스쿨 (programmers.co.kr)
<문제 풀이>
- heapq를 이용해서 풀었다.
- 존재하지 않으면 -1을 담기 때문에 초기값을 -1로 한 answer list를 생성한다.
- 입력값을 하나씩 꺼내온다. 꺼내온 값과 heap에서 꺼낸 값을 비교하고 작다면 heap에서 꺼내 온 값의 index에 현재 값을 넣어준다.
- while문을 빠져나왔다면 heap에 현재 값과 index를 함께 넣어준다.
<Code>
import heapq
def solution(numbers):
answer = [-1] * len(numbers)
heap = []
for i in range(len(numbers)):
val = numbers[i]
while heap and heap[0][0] < val:
_, idx = heapq.heappop(heap)
answer[idx] = val
heapq.heappush(heap, [val, i])
return answer
※ 잘못된 점, 개선점 등이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.
반응형
'Alogorithm > programmers' 카테고리의 다른 글
[programmers] Lv2 이모티콘 할인행사 - Python (0) | 2023.03.29 |
---|---|
[programmers] Lv2 숫자 변환하기 - Python (2) | 2023.03.29 |
[programmers] Lv2 무인도 여행 - Python (0) | 2023.03.28 |
[programmers] Lv2 호텔 대실 - Python (0) | 2023.03.28 |
[programmers] Lv3 인사고과 - Python (0) | 2023.03.24 |