Notice
Recent Posts
Recent Comments
Link
유자차의 재테크 공부방
[프로그래머스] 주식가격 본문
반응형
문제
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
제한사항- prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
- prices의 길이는 2 이상 100,000 이하입니다.
[1, 2, 3, 2, 3] | [4, 3, 1, 1, 0] |
- 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다.
- 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다.
- 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.
- 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다.
- 5초 시점의 ₩3은 0초간 가격이 떨어지지 않았습니다.
문제 풀이
스택/큐 문제였으나 큐를 사용하더라도 O(n^2)이기 때문에 이중 for문을 사용해도 상관없을 것 같다.
정확도 문제에서는 큰 차이는 없었지만 효율성 문제에서는 시간이 반정도 절약이 되는 것을 알 수 있었다.
def solution(prices):
n = len(prices)
ans=[]
for i in range(n):
time=0
for j in range(i+1, n):
if prices[i] <= prices[j]:
time+=1
else:
time+=1
break
ans.append(time)
return ans
정확성 테스트
테스트 1 〉 통과 (0.00ms, 10.1MB)
테스트 2 〉 통과 (0.04ms, 10.2MB)
테스트 3 〉 통과 (0.56ms, 10.4MB)
테스트 4 〉 통과 (0.62ms, 10.4MB)
테스트 5 〉 통과 (0.78ms, 10.3MB)
테스트 6 〉 통과 (0.04ms, 10.3MB)
테스트 7 〉 통과 (0.67ms, 10.1MB)
테스트 8 〉 통과 (0.42ms, 10.2MB)
테스트 9 〉 통과 (0.03ms, 10.2MB)
테스트 10 〉 통과 (0.76ms, 10.4MB)
효율성 테스트
테스트 1 〉 통과 (114.12ms, 18.8MB)
테스트 2 〉 통과 (94.05ms, 17.5MB)
테스트 3 〉 통과 (141.43ms, 19.5MB)
테스트 4 〉 통과 (109.50ms, 18.2MB)
테스트 5 〉 통과 (72.65ms, 17.1MB)
deque를 사용한 풀이 방법
from collections import deque
def solution(prices):
prices = deque(prices)
ans = []
while len(prices)>0:
p = prices.popleft()
time = 0
for i in prices:
time+=1
if p > i:
break
ans.append(time)
return ans
정확성 테스트
테스트 1 〉 통과 (0.01ms, 10.3MB)
테스트 2 〉 통과 (0.03ms, 9.95MB)
테스트 3 〉 통과 (0.32ms, 10.2MB)
테스트 4 〉 통과 (0.33ms, 10.4MB)
테스트 5 〉 통과 (0.88ms, 10.2MB)
테스트 6 〉 통과 (0.03ms, 10.1MB)
테스트 7 〉 통과 (0.20ms, 10.2MB)
테스트 8 〉 통과 (0.45ms, 10.3MB)
테스트 9 〉 통과 (0.02ms, 10.3MB)
테스트 10 〉 통과 (0.41ms, 10.3MB)
효율성 테스트
테스트 1 〉 통과 (65.20ms, 18.8MB)
테스트 2 〉 통과 (47.01ms, 17.5MB)
테스트 3 〉 통과 (81.36ms, 19.4MB)
테스트 4 〉 통과 (57.88ms, 18.2MB)
테스트 5 〉 통과 (39.06ms, 16.9MB)
반응형
'파이썬 > 알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] 햄버거 만들기 (0) | 2023.01.13 |
---|---|
[프로그래머스] 다리를 지나는 트럭 (0) | 2022.06.28 |
[프로그래머스] 비밀지도 (0) | 2022.03.19 |
[프로그래머스] 최대공약수와 최소공배수 (0) | 2022.03.19 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2022.03.18 |
Comments