[プログラマー]LEVEL 2株価
798 ワード
株価問題
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
価格はそれぞれ1以上10000以下の自然数です.
価格の長さは2以上100000以下です.
prices [1, 2, 3, 2, 3]
return [4, 3, 1, 1, 0]
質問する
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
せいげんじょうけん
価格はそれぞれ1以上10000以下の自然数です.
価格の長さは2以上100000以下です.
I/O例
prices [1, 2, 3, 2, 3]
return [4, 3, 1, 1, 0]
1秒の1はずっと値下げしていません。 2秒の2ずっと値下げしていません。 3秒ポイントの3は1秒後に値下げされます。そのため、価格は1秒以内に下がっていない。 4秒時の2は1秒以内に値下げされませんでした。 5秒時の3は0秒以内に値下げされませんでした。
def solution(prices): length = len(prices) answer = [0] * length stack = [] for curr in range(length): while stack and prices[stack[-1]] > prices[curr]: prev = stack.pop() answer[prev] = curr - prev stack.append(curr) while stack: prev = stack.pop() answer[prev] = (length -1) - prev return answer
Reference
この問題について([プログラマー]LEVEL 2株価), 我々は、より多くの情報をここで見つけました https://velog.io/@tpclsrn7942/프로그래머스-LEVEL2-주식가격テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol