• 스택/큐 알고리즘 문제 : 프로그래머스 LEVEL 2(기능개발) image - 사용 언어 : C++ - 해결 날짜 : 2021-01-26

    **- 해결 방법** :
    
        우선 작업 별 소요 일 수는 (100-progresses)/speeds 임을 활용하였다.
    
        처음에 형변환을 하지 않고 위의 식을 새로 선언한 rate vector에 push한 다음 비교하는 과정을 수행하였는데, 마지막 테스트 케이스에서 계속 오류가 발생하여 찾아보니 c++에서는 형변환 후 저장하는 과정이 강요됨을 알게되었다.
    
        이 작업들을 돌며 앞 작업보다 작업 일수가 큰 작업이 나올때 까지 아직 배포되지 않은 작업 중 첫번째 작업과 그 뒤의 작업들을 비교하여 작업들을 추가하였고, 마지막 작업은 반복문의 종료 후 따로 추가해주었다.
    
    - 코드
    
    ```
    #include <string>
    #include <vector>
    #include <cmath>
    
    using namespace std;
    //(100-progresses[i]) / speeds[i]
    vector<int> solution(vector<int> progresses, vector<int> speeds) {
        vector<int> answer;
        vector<double> rate;
        //작업 별 배포하는데 필요한 소요 일 수를 저장
        for(int i = 0; i<progresses.size(); i++){
            rate.push_back((double)(100-progresses[i]) / (double)speeds[i]);
        }
        int temp = 0;
        int ans = 0;
        int total = 0;
        for(int i = 1; i<progresses.size(); i++){
            ans++;
            //배포되지 않은 작업 중 제일 앞 작업과 그 뒤의 작업들을 비교,
            //앞 작업보다 작업 일수가 큰 작업이 나올 때 까지
            if(ceil(rate[i]) > ceil(rate[temp])){
                temp = i;
                answer.push_back(ans);
                ans = 0;
            }
        }
        //마지막 작업까지 추가
        answer.push_back(rate.size()-temp);
    
        return answer;
    }
    ```