株価(プログラマー)
5862 ワード
リンクテキスト
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
I/O例
prices return
[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
実は問題が多い.私だけなのかはわかりませんが、基準を超えた時点はとても混乱しています.質問欄の説明を見て、価格要素ごとに自分の要素の個数より大きいものを求める問題と理解し、なければ、自分で1つだけ数えればいいのです.最後のインデックスの要素の後ろには時点がないので、0をあげればいいです.
問題を理解する
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
I/O例
prices return
[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
私の理解
実は問題が多い.私だけなのかはわかりませんが、基準を超えた時点はとても混乱しています.質問欄の説明を見て、価格要素ごとに自分の要素の個数より大きいものを求める問題と理解し、なければ、自分で1つだけ数えればいいのです.最後のインデックスの要素の後ろには時点がないので、0をあげればいいです.
Python
from collections import deque
def solution(prices):
queue = deque(prices)
answer = []
while queue:
price = queue.popleft()
sec = 0
for q in queue:
sec += 1
if price > q:
break
answer.append(sec)
return answer
Pythonでdeque関数を実現しました.Popleftをするとインデックススライドと同じ機能をする[1:]という形でそこで一つ一つカットしてカウントダウンし、結果をリストに並べて返します.C++
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer;
for (int i=0; i<prices.size();i++){
int check =0;
for (int t = i+1; t<prices.size(); t++){
check +=1;
if (prices[i]> prices[t]){
break;
}
}
answer.push_back(check);
}
return answer;
}
CPPは二重for文で記述されている.これにより、インデックスに基づいて巡回し、push backを1つずつ返します.Reference
この問題について(株価(プログラマー)), 我々は、より多くの情報をここで見つけました https://velog.io/@happyfran67/주식가격프로그래머스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol