세용용용용
2023. 7. 21. 16:18

코딩테스트 연습 - 주식가격 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
def solution(prices):
answer = []
#주식 가격을 for문 돌림
for i in range(len(prices)):
count = 0
# 뒤에 있는 주식 가격을 for문 돌림
for j in range(i+1, len(prices)):
count+=1
#가격이 떨어지면 break
if prices[i] > prices[j]:
break
answer.append(count)
#print(answer)
return answer
solution([1,2,3,2,3])
이렇게도 풀리지면
조금더 효율적인 코드가 있었음....
바로 deque를 활용한 문제 풀이
수정 코드
from collections import deque
def solution(prices):
answer = []
#리스트를 덱으로 변환!!
prices = deque(prices)
while prices:
count = 0
#덱왼쪽에서부터 하나 가져옴
price = prices.popleft()
#for문으로 가격이 떨어질떄까지 돌림
for i in prices:
count += 1
if price > i:
break
#최종적으로 count삽입 시켜준다
answer.append(count)
#print(answer)
return answer
solution([1, 2, 3, 2, 3])