Algorithm/백준과 프로그래머스
[프로그래머스/C++] LV2. 기능개발
young_3060
2024. 2. 2. 16:18
728x90
오랜만에 문제 풀기~
처음에는 큐를 이용해서 문제를 풀까 생각했는데,
더 간단하게 풀릴것같아서 단순 구현으로 풀었다.
어차피 days는 계속 누적되고, cnt만 배포될때마다 확인 후 reset시켜주면 되는거라
while문으로 progress + speed * days가 100 넘을때까지 days를 누적시켜주고,
이후 배포되는 친구들을 위해 cnt가 0이 아닐 때, answer에다가 push해준다.
마지막 값이 누락되는 것을 방지하고자,
루프를 다 돌고 나왔을 때 cnt가 0이 아니면 answer에 push 해준다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
int cnt = 0;
int days = 0;
for(int i=0; i<progresses.size(); i++) {
while(progresses[i] + speeds[i]*days < 100) {
if(cnt != 0) {
answer.push_back(cnt);
cnt = 0;
}
days++;
}
cnt++;
}
if(cnt!=0) answer.push_back(cnt);
return answer;
}
728x90