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
'Algorithm > 백준과 프로그래머스' 카테고리의 다른 글
[C++] 16234. 인구이동 (0) | 2024.03.07 |
---|---|
[C++] 17413. 단어 뒤집기2 (0) | 2024.03.06 |
[프로그래머스] LV1. 키패드 누르기 (0) | 2024.01.19 |
[C++] 프로그래머스 LV1. 가장 많이 받은 선물 (Kakao 기출문제) (0) | 2024.01.17 |
[C++] 프로그래머스 LV2. 조이스틱 (0) | 2024.01.13 |