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
반응형