[프로그래머스] 기능개발 C++
by 너나나https://programmers.co.kr/learn/courses/30/lessons/42586
각 작업은 병렬적으로 실행 가능하지만, 앞의 기능이 배포가 되어야만 뒤에꺼도 배포할 수 있음.
어떤 작업이 배포할 때까지 걸리는 시간이 앞 작업의 배포 시간보다 작다면 나중에 앞 작업이 배포될때 같이 배포될 수 있음!
#include <string>
#include <vector>
#include <cmath>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
vector<int> period; // 빠져나갈때까지 걸리는 시간 넣자
for(int i = 0; i < progresses.size(); i++) {
period.push_back(ceil((float)(100 - progresses[i])/speeds[i]));
}
int count = 1;
int base = period[0];
for(int i = 0; i < progresses.size() - 1; i++) {
if(base >= period[i + 1]) {
count++;
continue;
}
else {
answer.push_back(count);
base = period[i + 1];
count = 1;
}
}
answer.push_back(count);
return answer;
}
개떡같이 푼거같다!!!!!
항상 기준은 배포가 안된 제일 첫번째껄로 해주기 위해서 배포가 되면 base를 period[i+1]로 바꾸면서 기준을 바꿨다!!
'study > 알고리즘' 카테고리의 다른 글
[프로그래머스] 네트워크 C++ (1) | 2022.05.14 |
---|---|
[프로그래머스] 더 맵게 C++ (1) | 2022.05.12 |
[프로그래머스] 완주하지 못한 선수 C++ (1) | 2022.05.11 |
[프로그래머스] 숫자 문자열과 영단어 C++ (0) | 2022.05.09 |
[프로그래머스] 신고 결과 받기 C++ (0) | 2022.05.09 |
블로그의 정보
공부 기록
너나나