https://school.programmers.co.kr/learn/courses/30/lessons/42586
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
// 각 작업이 필요로하는 일수를 dueDateList에 저장
int dueDateList[progresses.size()];
bool isDone;
for(int i=0; i< progresses.size(); i++){
dueDateList[i] = 0;
isDone = false;
while(!isDone){
dueDateList[i]++;
if(progresses[i] + speeds[i]*dueDateList[i] >= 100){
isDone = true;
}
}
}
int targetNum = 0; // 배포를 하는 당시에 progresses의 시작지점
int commitNum = 1; // 연속 몇개를 배포하는지
for(int i=1; i<progresses.size(); i++){
if(dueDateList[i] <= dueDateList[targetNum]){ // 필요한 날짜를 비교하여 작으면 같이 배포가 가능한 경우
commitNum++;
}
else{
answer.push_back(commitNum);
targetNum = i;
commitNum = 1;
}
}
answer.push_back(commitNum);
return answer;
}
각 작업이 필요로 하는 일수를 저장하는 dueDateList를 새로 만들어 초기화.
targetNum은 배포를 진행하는 index를 저장하는 변수인데,
dueDateList에서 요소를 비교해서 뒤에 나오는 수가 작다는 것은, targetNum의 배포시점에 이미 완성이 되어있다는 것.
그래서 함께 배포할 수 있도록 지정해준다.
https://github.com/J2on/Programmers_Study/blob/main/Level2./%EA%B8%B0%EB%8A%A5%EA%B0%9C%EB%B0%9C.cpp
[Level2.] 구명보트 C++ (0) | 2024.02.04 |
---|---|
[Level1.] 개인정보 수집 유효기간 C++ (0) | 2024.02.03 |
[Level2.] 주식가격 C++ (0) | 2023.07.12 |
[Level2.] 올바른 괄호 C++ (0) | 2023.07.11 |
[Level1.] 같은 숫자는 싫어 C++ (0) | 2023.07.11 |
댓글 영역