プログラマLv 2-機能開発
コード#コード#
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
int day = 0, cal = -1, now = 0;
for(int i=0;i<progresses.size();i++) {
// 날짜 계산
cal = ceil((double)(100 - progresses[i]) / speeds[i]);
if(cal <= day) {
// 이미 처리된 작업 증가
now++;
} else {
if(day != 0) {
// 다음 작업을 위해 그전 작업 개수 증가
answer.push_back(now);
}
// 날짜 업데이트
day = cal;
now = 1;
}
}
answer.push_back(now);
return answer;
}
解答と感想
これは単純に実施によって解決される問題である.まず、ワークロードベースで計算された日付が保存されます.また,その日付を基準とすれば同時配信が可能であるため,数を増やした.日付が初期値でない場合は、新しく処理され、
answer
に保存されます.最後の作業は別途保存する必要があり、for
のドアの外でもう一度保存します.最良の解答から見ると、私は++answer.back()
を使っています.もし私も使えば、もっときれいに書くはずです.Reference
この問題について(プログラマLv 2-機能開発), 我々は、より多くの情報をここで見つけました https://velog.io/@cookncoding/프로그래머스Lv2-기능개발テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol