Algorithm/C++ - 프로그래머스

프로그래머스 Level 2 - 기능개발 C++

ㅇㅇ잉 2021. 3. 4. 00:59

설명은 주석을 보자!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <string>
#include <vector>
 
using namespace std;
 
vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer;
    
    int max_day=0, day;
    for(int i=0;i<progresses.size();i++){
        //i번째 기능이 며칠 걸리는지 계산
        day = (100-progresses[i])/speeds[i]; 
 
        //만약에 나머지가 남아있다면 하루 더 계산해준다.
        if((100-progresses[i])%speeds[i]>0) day++
        
        //첫번째 기능이거나, 더 오래걸리는 기능(max_day<day)이면 answer.push_back(1)
        if(answer.empty() || max_day<day){ 
            answer.push_back(1);
            max_day=day;
        }else //그게 아니라면 같이 나갈 수 있다는거니까, ++answer.back();
            ++answer.back();
    }
    
    return answer;
}
cs