[programmers]Stack/Queue-株価(Python)
ソース
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
の価格は、それぞれ1以上10000以下の自然数です. 価格の長さは2以上100000以下です.
pricesreturn[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
1秒の1はずっと値下げしていません. 2秒の2はずっと値下げしていません. 3秒の3は1秒後に値下げされます.そのため、価格は1秒以内に下がっていない. 4秒の2は1秒で値下げされませんでした. 5秒の3は0秒以内に値下げされませんでした.
問題の説明は私には難しすぎる.だから、答えがなぜそうなのか説明してから、答えをしたいと思います.
リストのインデックスは0から始まり、問題の秒は1から始まるので混同される可能性があるので、秒を0から始まるように変更します.
pricesreturn[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
前から順次残価に
Stack/Queue:株価[Lv 2]
問題の説明
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
せいげんじょうけん
I/O例
pricesreturn[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
I/O例説明
Solution
もんだいぶんせき
問題の説明は私には難しすぎる.だから、答えがなぜそうなのか説明してから、答えをしたいと思います.
リストのインデックスは0から始まり、問題の秒は1から始まるので混同される可能性があるので、秒を0から始まるように変更します.
pricesreturn[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
0초 일 때, prices[0] = 1
0초 제외, 그 이후 남는 주식 목록: [2, 3, 2, 3]
남은 주식 목록에서 0초값(prices[0], 1)보다 작아질 때까지의 길이: 없음
0초 값보다 작아질 때가 없으므로 끝까지 유지.
유지시간: 4초
1초 일 때, prices[1] = 2
1초 제외, 그 이후 남는 주식 목록: [3, 2, 3]
남은 주식 목록에서 1초값(prices[1], 2)보다 작아질 때까지의 길이: 없음
1초 값보다 작아질 때가 없으므로 끝까지 유지.
유지시간: 3초
2초 일 때, prices[2] = 3
2초 제외, 그 이후 남는 주식 목록: [2, 3]
남은 주식 목록에서 2초값(prices[2], 3)보다 작아질 때까지의 길이: 1
여기서 2초값보다 작아지는 때는 3초이고, prices[3]은 2이다.
유지시간: 1초
3초 일 때, prices[3] = 2
3초 제외, 그 이후 남는 주식 목록: [3]
남은 주식 목록에서 3초값(prices[3], 2)보다 작아질 때까지의 길이: 없음
3초 값보다 작아질 때가 없으므로 끝까지 유지.
유지시간: 1초
4초 일 때, prices[4] = 3
4초 제외, 그 이후 남는 주식 목록: []
이 이후 남은 주식이 없으므로 이 때가 지나면 모두 끝.
유지시간: 0초
説明する
from collections import deque
def solution(prices):
answer = []
prices = deque(prices)
while prices:
now = prices.popleft()
time = len(prices)
for x in enumerate(prices):
if x[1] < now:
time = x[0] + 1
break
answer.append(time)
return answer
Queueを使用しました.prices
をキューに変換し、一番前の要素を1つずつポップアップ()します.( now
)前から順次残価に
now
未満の値があるかを確認する.価格が存在する場合、time
に해당 값의 index + 1
が代入され、forゲートが終了する.now
未満の値が存在せず、for文がすべて迂回している場合、time
はprices
の長さに代入される.time
をanswer
に追加します.結果
Reference
この問題について([programmers]Stack/Queue-株価(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@deannn/Programmers-StackQueue-주식가격-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol