문제 :
https://programmers.co.kr/learn/courses/30/lessons/42584
코딩테스트 연습 - 주식가격
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00
programmers.co.kr
답을 찾아본 코드 [deque이용] :
< deque 안쓰고 list에서 pop(0)이용해서 풀면 효율성에서 실패함 >
from collections import deque
def solution(prices):
answer = []
d = deque(prices)
while d :
tmp = d.popleft() # 하나를 뺀다.
tmp_ans = 0 # 한 숫자마다 0으로 설정
for i in d :
tmp_ans+=1 # 무조건 1은 올려야함
if tmp > i : # 큰 숫자가 있으면 for 문 빠져나오기
break
answer.append(tmp_ans)
return answer
내가 만든 코드 :
덱을 안쓸거면 index를 이용해서 풀면된다.
def solution(prices):
answer = []
Len = len(prices)
for i in range(Len) :
tmp = prices[i]
cnt = 0
for j in range(i+1,Len) :
cnt+=1
if prices[j] < tmp :
break
answer.append(cnt)
return answer
정확성과 효율성은 동일하다!
두 코드의 차이는
덱으로 만들어서 하나 씩 빼가면서 하냐
아니면
빼지않고 인덱스를 잘 맞춰서 원하는 값을 만드느냐이다.
덱이라는 자료구조를 이용해서 만드는게 있어보이기도 하고 더 간단하다.
그래서 덱 코드로 연습하려고 한다.
복습하면서 보니까 deque 이용한 코드가 더 직관적이다.
복습 :
✅ 20220616
✅ 20220620
✅ 20220622
✅ 20220626
✅ 20220627
✅ 20220630
✅ 20220701
참고 블로그 :
https://javaiyagi.tistory.com/651
프로그래머스 주식가격 파이썬
https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 retur..
javaiyagi.tistory.com
'알고리즘 > 프로그래머스문제풀이' 카테고리의 다른 글
[PYTHON][프로그래머스]디스크 컨트롤러_힙 (0) | 2022.06.11 |
---|---|
[python][프로그래머스]더 맵게_힙(heap) (0) | 2022.06.10 |
[python][프로그래머스] 다리를 지나는 트럭_스택/큐 (0) | 2022.06.10 |
[python][프로그래머스]프린터_스택/큐 (0) | 2022.06.09 |
[python][프로그래머스]기능개발_[스택/큐] (0) | 2022.06.09 |