반응형
주의할 점은
나눴을 때 2.44 이런 값이 나오면 3일이 걸리도록 처리해야한다는 점이다.
#include <string>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
queue<int> que;
int len = progresses.size();
int days = 0;
for(int i = 0; i < len; i++) {
days = ceil((100.0f - progresses[i]) / speeds[i]);
que.push(days);
}
int max = que.front();
int counter = 0;
while(!que.empty()) {
if(max >= que.front()) {
counter++;
} else {
answer.push_back(counter);
max = que.front();
counter = 1;
}
que.pop();
}
answer.push_back(counter); // 마지막 처리
return answer;
}
솔직히 스스로의 코드가 너무 지저분하다고 생각되어서, 다른 분은 어떻게 짰나 하고 봤는데 감탄했다.
그 분의 풀이를 토대로 내 코드를 재구성했다.
#include <string>
#include <vector>
#include <cmath>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
int len = progresses.size();
int max = 0;
for(int i = 0; i < len; i++) {
int days = ceil((100.0f - progresses[i]) / speeds[i]);
if(days > max) {
answer.push_back(1);
} else {
answer.back()++;
}
if(max < days)
max = days;
}
return answer;
}
answer.back()++ 를 활용하는게 관건이었다.
반응형
'[프로그래머스]' 카테고리의 다른 글
프로그래머스 주식 가격 C++ (0) | 2023.08.17 |
---|---|
프로그래머스 프로세스 C++ (0) | 2023.08.17 |
프로그래머스 전화번호 목록 C++ (0) | 2023.08.17 |
프로그래머스 위장 C++ (0) | 2023.08.17 |
프로그래머스 더 맵게 C++ (0) | 2023.08.15 |