[プログラマ]機能の開発
[プログラマ]機能の開発
質問する
せいげんじょうけん
にゅうしゅつりょく
質問へのアクセス
キューを使用して実装される問題.
現在の進捗と速度を使用して、合計消費時間を計算し、キューに入れます.progress[i]/speed[i]がちょうど分かれている場合は、当日を直接キューに入れます.そうしないと、もう1を追加します.
キューのfifoコンセプトを使用して、まず入力し、まず値を最初の基準として出力し、後の値が自分より小さくなったら抽出を続け、自分より大きい値が現れたら抽出を停止し、ドアに戻って開始します.
コード実装(C++)
#include <string>
#include <vector>
#include <queue>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
int taskSize = progresses.size();
queue<int> q;
vector<int> answer;
for(int i = 0 ; i < taskSize ; i++){
int days = (100-progresses[i])/speeds[i];
if((100-progresses[i])%speeds[i] != 0){
days += 1;
}
q.push(days);
}
while(1){
if(q.empty()) break;
int cnt = 0;
int firstNum = q.front();
int tempNum;
q.pop();
cnt++;
while(1){
if(q.empty()) break;
tempNum = q.front();
if(tempNum > firstNum) break;
q.pop();
cnt++;
}
answer.push_back(cnt);
}
return answer;
}
Reference
この問題について([プログラマ]機能の開発), 我々は、より多くの情報をここで見つけました
https://velog.io/@kpg0518/프로그래머스-기능-개발
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <string>
#include <vector>
#include <queue>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
int taskSize = progresses.size();
queue<int> q;
vector<int> answer;
for(int i = 0 ; i < taskSize ; i++){
int days = (100-progresses[i])/speeds[i];
if((100-progresses[i])%speeds[i] != 0){
days += 1;
}
q.push(days);
}
while(1){
if(q.empty()) break;
int cnt = 0;
int firstNum = q.front();
int tempNum;
q.pop();
cnt++;
while(1){
if(q.empty()) break;
tempNum = q.front();
if(tempNum > firstNum) break;
q.pop();
cnt++;
}
answer.push_back(cnt);
}
return answer;
}
Reference
この問題について([プログラマ]機能の開発), 我々は、より多くの情報をここで見つけました https://velog.io/@kpg0518/프로그래머스-기능-개발テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol