새소식

⌨️ Algorithms/프로그래머스

[Python] 프로그래머스 Lv2_주식가격

2022. 12. 20. 23:33

  • -

https://school.programmers.co.kr/learn/courses/30/lessons/42584

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • prices: 초 단위로 기록된 주식가격이 담긴 배열
  • 가격이 떨어지지 않은 기간은 몇 초인지를 return

제한사항

  • prices의 각 가격은 1 이상 10,000 이하인 자연수
  • prices의 길이는 2 이상 100,000 이하

 

"""
입출력 예시)

prices = [1, 2, 3, 2, 3] -> [4, 3, 1, 1, 0]
"""

 

# 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았음
# 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았음
# 3초 시점의 ₩3은 1초뒤에 가격이 떨어짐. 따라서 1초간 가격이 떨어지지 않음
# 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았음
# 5초 시점의 ₩3은 0초간 가격이 떨어지지 않았음

 

 

## 의사코드 ##

# 선입선출 -> 큐

# 큐 생성 -> deque(prices)
# while deque:
#   deque.popleft() -> 현재 주식가격
#   time = 0
#   for d in deque: 
#       time += 1
#       if 현재 주식가격 > d:
#           break
# answer.append(time)

 

 

통과한 코드

 

from collections import deque

def solution(prices):
    answer = []
    dq = deque(prices)

    while dq:
        now_p = dq.popleft() # 현재 주식가격
        time = 0 # 가격이 떨어지지 않은 기간 (매번 리셋)
        for d in dq:
            time += 1
            if now_p > d:
                break
        answer.append(time) 
    
    return answer

 

 

참고)

 

https://velog.io/@soo5717/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%A3%BC%EC%8B%9D%EA%B0%80%EA%B2%A9-Python

 

Programmers | 주식가격 - Python

3주차 알고리즘 스터디 - 스택/큐 (Stack/Queue) : 프로그래머스 Level2 주식가격 접근 방식 및 풀이 과정

velog.io

-> 선입선출인 큐를 이용해서 푸는 방법과 후입선출인 스택을 이용해서 푸는 방법 모두 설명됨

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!