주식가격이라니, 솔깃한 테마이다.
https://school.programmers.co.kr/learn/courses/30/lessons/42584
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
첫번째 시도
문제 자체는 쉽다.
prices의 각 가격에 대해서 다음 가격부터 끝까지 검사하면 된다.
아래와 같이 구현했는데...
효율성테스트에서 떨어졌다.
def solution(prices):
# 1번째 요소는 2번째부터 처음부터 끝가지
# 2번재 요소는 3번째부터 끝까지....
# 즉 하나씩 빼면서 세기만하면됨
answer = []
while prices:
price = prices.pop(0)
cnt = 0
for elem in prices:
if elem >= price:
cnt += 1
else:
cnt += 1
break
answer.append(cnt)
return answer
두번째시도
나를 믿지말고 라이브러리를 믿어라.
collections는 기본 라이브러리이기때문에 대부분의 코테에서 임포트 가능하다.
collections의 deque는 스택과 큐의 역할을 모두 수행할 수 있고, 이중연결리스트로 구현 되어 있다.
때문에 큐나 스택같이 리스트의 왼쪽이나 오른쪽에 접근하는 경우 높은 효율성을 자랑한다.
앞으로 큐/스택를 활용할 때에는 무조건 deque로 만들자.
from collections import deque
def solution(prices):
prices=deque(prices)
answer = []
while prices:
price = prices.popleft()
cnt = 0
for elem in prices:
if elem >= price:
cnt += 1
else:
cnt += 1
break
answer.append(cnt)
return answer
'코딩테스트 > 스택과 큐' 카테고리의 다른 글
[스택/큐] 프로그래머스 올바른 괄호 (python) (0) | 2022.12.31 |
---|---|
[스택/큐] 프로그래머스 같은 숫자는 싫어 (python) (0) | 2022.12.31 |