[プログラマー]株価Lv2 - Python
[プログラマー]株価Lv2
私の答えキューです.これは最も簡単なスタックレスアクセスです. 価格がの次のインデックスを下回った場合、終了します.あるいはもう1秒 キューを使用するプールキューを使用して、キュー内の要素が存在する場合に繰り返します.キューから最初の要素を取り出し、価格変数に入れます. 最初の要素を除いて、キューの周りを回転します.同様に、価格が価格より低い場合は、繰り返しを停止するか、sec+=1を続行します. for家を出て、回答にsecを入れます. の結果、同じ方法を採用しているので、性能の差は大きくないと思いますが、効率テストの結果は2倍ほど違います. スタックを使用したプール白駿の17298号大数問題とよく似ている. 株価が下落しなければ、答えは総要素の個数が3個であれば、2,1,0の形で現れる.そこで、まず問題がないと仮定し、答えを設定します. スタック内の最後の要素の価格(i)よりも価格が低い場合、価格が下がったことを意味し、互いのインデックスの違いを求め、答えスタックを与えることができる.pop()インデックスに対応する値を入力します. スタックが空であるか、次の価格がより大きい場合は、スタックにインデックスを追加します. 効率ではスタック速度が最も速い.
私の答え
def solution(prices):
answer = [0] * len(prices)
for i in range(len(prices)):
for j in range(i + 1, len(prices)):
answer[i] += 1
if prices[i] > prices[j]:
break
return answer
from collections import *
def solution(prices):
queue = deque(prices)
answer = []
while queue:
price = queue.popleft()
sec = 0
for s in queue:
sec += 1
if price > s:
break
answer.append(sec)
return answer
def solution(prices):
stack = []
answer = [i for i in range(len(prices) - 1, -1, -1)]
for i in range(len(prices)):
while stack and prices[stack[-1]] > prices[i]:
sec = i - stack[-1]
answer[stack.pop()] = sec
stack.append(i)
return answer
Reference
この問題について([プログラマー]株価Lv2 - Python), 我々は、より多くの情報をここで見つけました https://velog.io/@goshk95/프로그래머스-주식가격Lv.2-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol