coding test - C++/Programmers

Programmers / 기능개발 / C++

sillon 2026. 2. 7. 19:06
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 기능개발

문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=cpp

 

 


나의 풀이

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
    vector<int> answer;
    vector<int> days;
    
    for (int i = 0 ; i < progresses.size() ; i ++){
        int remain_work = 100 - progresses[i];
        int need_day = (remain_work + speeds[i] - 1) / speeds[i]; // 올림 나눗셈
        days.push_back(need_day);
    }
    int cur_day = days[0];
    int cnt = 1;
    for (int i = 1 ; i < progresses.size() ; i ++){
        if (days[i] <= cur_day){
            cnt += 1;
        }
        else{
            answer.push_back(cnt);
            cnt = 1;
            cur_day = days[i];
        }
    }
    answer.push_back(cnt); // 나머지
    return answer;
}

기능개발에 걸리는 날짜들을 전체로 구한 뒤,

 

 첫번째 순서대로 기준으로 옆으로 가면서

개발에 걸리는 일수가 큰지 / 작은지 확인후

작다면 cnt += 1

개발에 걸리는 일 수가 이전에 있는 프로그래스보다 크다면

cnt = 1 

 

 

728x90
반응형