프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📄 문제
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.
또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.
먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.
📝 풀이
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
int size = progresses.size();
vector<int> answer;
int idx = 0;
int days = 0;
while(idx < size)
{
for(int i = idx; i < size; ++i)
progresses[i] += speeds[i];
int cnt = 0;
for(int i = idx; i < size; ++i)
if(progresses[i] >= 100)
++cnt, ++idx;
else
break;
if(cnt)
answer.push_back(cnt);
}
return answer;
}
- while문에서 idx부터 끝까지 speeds[i]만큼을 더해줍니다.
- progress[i]가 100 이상일경우, 완료된 작업입니다. 100 미만일때까지 개수를 샌 후 정답에 push합니다.
'algorithms (C++)' 카테고리의 다른 글
[C++][프로그래머스] 다리를 지나는 트럭 rotate(), q.back() (0) | 2023.11.18 |
---|---|
[C++][프로그래머스] 주식가격 (0) | 2023.11.17 |
[C++][프로그래머스] 프로세스 (0) | 2023.11.17 |
[C++][프로그래머스] 소수 찾기 (0) | 2023.11.15 |
[C++][프로그래머스] 큰 수 만들기 🔥 (0) | 2023.11.15 |