-
(프로그래머스) 코딩테스트 연습 - 스택/큐- 주식가격(Python)Algorithm/프로그래머스 2020. 2. 9. 17:51
문제 : https://programmers.co.kr/learn/courses/30/lessons/42584
문제 설명
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
제한사항
- prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
- prices의 길이는 2 이상 100,000 이하입니다.
코드
def solution(prices): answer = [] deq = deque(prices) while True: price = deq.popleft() if not deq : answer.append(0) break for i in range(len(deq)): if price > deq[i]: answer.append(i+1) break elif i == len(deq)-1: answer.append(i+1) break return answer
풀이 및 후기
참고로 위 코드로 효율성은 통과하지 못했습니다!
사실 제 생각에 이 문제는,,, 썩 좋은 느낌의 문제가 아니라고 생각이 드네요..
오히려 stack이나 deque을 쓴 경우 효율성은 탈락하고, list를 통해 2중 for문을 쓰는 경우 효율성이 더 빨라지는 경우입니다.
위 문제를 처음 stack으로 풀어서 pop(0)을 이용할 땐 효율성을 다 떨어졌지만, deque을 사용할 경우 3분의 1은 통과하게 됩니다.
그렇게 어려운 문제가 아니니 크게 설명을 하지 않겠습니다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
(프로그래머스) 코딩테스트 연습 - 스택/큐- 쇠막대기(Python) (0) 2020.01.17 (프로그래머스) 코딩테스트 연습 - 스택/큐- 프린터 (Python) (0) 2020.01.16 (프로그래머스) 코딩테스트 연습 - 스택/큐- 기능개발 (Python) (0) 2020.01.16 (프로그래머스) 코딩테스트 연습 - 힙- 더 맵게 (Python) (0) 2020.01.10 (프로그래머스) 코딩테스트 연습 - 해시- 베스트앨범 (Python) (0) 2020.01.09 댓글