less than 1 minute read

오늘 한 리스트

  1. 프로그래머스 스택 / 큐 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를 사용해 최대한 효율적으로 만들어 풀었다. 올클!

Categories:

Updated:

Leave a comment