[プログラマー]-株価(javascript)
7539 ワード
問題の説明
秒単位で記録された株価の配列価格をパラメータとして指定すると、価格が下がらない時間帯に数秒戻るように解く関数が完了する.
せいげんじょうけん
価格はそれぞれ1以上10000以下の自然数です.
価格の長さは2以上100000以下です.
I/O例説明
価格配列の各株の価格は数秒下落しないことを要求している.
起こり得る状況を考える.
1.現在位置の株価が次位置の株価より低い場合、
2.現在位置の株価が次の位置の株価より大きい場合、
3.現在位置の株式が最後の位置である場合
このように3つです.この場合、数を求めるために、ドアを並べた大きさで回動させ、現在位置株価値を含む変数と、比較する株価(現在位置+1)を含む変数と、価格が下がっていない時間を含む変数を作ります.
次にwhile文で配列サイズにのみ変換する大きな条件を設定し、if文に条件を作成する3つの場合の数値を処理します.
首都コード
function solution(n){
let result = []
for (let i = 0; i < n.length; i++){
let stack = n[i] // 현재 주식 가격
let j = i + 1 // 비교 할 수의 index
let temp = 0; // 가격이 떨어지지 않은 시간
while(j < n.length + 1){ // j < 6 이면 진행
if (stack <= n[j]){ // 1. 나의 주식 가격이 다음 주식 가격보다 작거나 같으면 통과.
temp += 1;
j += 1;
continue; // if문 끝냄 while문으로
}
else if (temp == 0 && stack > n[j]){ // 2. 나의 주식 가격이 다음 주식 가격보다 크면 종료.
temp = 1;
result.push(temp);
temp = 0;
break; // while문 끝냄
}
else if (temp == 0 && j == n.length){ // 3. 마지막 주식이면 0 반환.
console.log(j)
result.push(temp);
break; // while문 끝냄
}
result.push(temp)
temp = 0;
break;
}
}
return result;
}
console.log(solution([1, 2, 3, 2, 3]))
整理するこれは資料構造の積み重ねの問題です.
Reference
この問題について([プログラマー]-株価(javascript)), 我々は、より多くの情報をここで見つけました https://velog.io/@jaewon1676/프로그래머스-주식가격-javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol