2023 팀네이버 신입 공채 준비 (4) 프로그래머스 스택 /큐
오늘 한 리스트
- 프로그래머스 스택 / 큐 1 문제
블로그 정리하는 서버에 github 레포토지랑 연결이 끊기는 불상사가 일어나 내가 어떻게 풀었는지 정리했던 Post가 다 사라졋다 ㅂㄷㅂㄷ…
프로그래머스 스택 / 큐 주식가격
- 문제 유형 : 스택 / 큐
주식가격 확인
문제 풀이def solution(prices): answer = [] length=len(prices) num=0 while prices: num+=1 target_prices=prices.pop(0) if not prices: answer.append(0) continue if target_prices <= min(prices): answer.append(length-num) continue answer.append(prices.index(list(filter(lambda x : x<target_prices,prices))[0])+1) # break # for n,i in enumerate(prices): # if target_prices>i: # answer.append(n+1) # break return answer
주식의 상승장일 때만 쌓는 알고리즘을 생각해 풀었을 때 코드이다.
효율성은 0% 정확도는 100%이다.
from collections import deque
def solution(prices):
dq1=[]
dq2=deque()
length=len(prices)
answer=[0 for k in range(length)]
for n in range(length):
if length==n+1:
continue
if prices[n] <= prices[n+1]:
dq1.append(prices[n]) # stock
dq2.append(n+1) # startpoints
else:
answer[n]=1
if dq1:
while prices[n+1]<dq1[-1]:
dq1.pop()
sp=dq2.pop()
answer[sp-1]=n+2-sp
if not dq1:
break
#print(dq1,dq2)
while dq1:
dq1.pop()
sp=dq2.popleft()
answer[sp-1]=length-sp
return answer
deque를 사용해 최대한 효율적으로 만들어 풀었다. 올클!
Leave a comment