반응형
programmers.co.kr/learn/courses/30/lessons/42586
1. 각 프로세스마다 배포까지 걸리는 날짜를 time 벡터에 저장하고
2. time 벡터를 for문 돌리면서
벡터 시작값보다 큰 값이 나오면 그전 프로세스까지는 배포하고,
시작값 다시 설정하고
3. 마지막 부분에서는 큰값이 안 나오고 for문이 종료될 수 있으므로 값 비교해서 부족한 만큼 answer에 추가.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
vector<int>time;
// 각 process별 배포까지 필요한 날짜 저장
for(int i = 0;i<speeds.size();i++){
if( (100- progresses[i]) % speeds[i] ==0)
time.push_back((100- progresses[i])/speeds[i] );
else
time.push_back((100- progresses[i])/speeds[i] +1);
}
// 배포할때마다 answer에 삽입
int start = 0;
int sum =0;
for(int i = start; i < time.size();i++){
if(time[i] > time[start]){
answer.push_back(i- start);
sum += (i-start);
start = i;
}
}
// 마지막 부분
if(sum != time.size())
answer.push_back(time.size()- sum);
return answer;
}
반응형
'IT > 알고리즘' 카테고리의 다른 글
59★] 프로그래머스 전화번호 목록 (0) | 2020.11.19 |
---|---|
58] 프로그래머스 주식가격 (0) | 2020.11.16 |
56] 프로그래머스 크레인 인형뽑기 게임 (0) | 2020.11.13 |
★55] 프로그래머스 실패율 (0) | 2020.10.25 |
54] 프로그래머스 3진법 뒤집기 (0) | 2020.10.21 |
댓글