https://school.programmers.co.kr/learn/courses/30/parts/12081
#include <string>
#include <vector>
#include <queue>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
queue<int> q;
for (int i = 0; i < progresses.size(); i++)
{
int d_day;
if ((100 - progresses[i]) % speeds[i]) // 나누어 떨어지지 않으면
d_day = (100 - progresses[i]) / speeds[i] + 1;
else
d_day = (100 - progresses[i]) / speeds[i];
q.push(d_day); // 완성되는데 필요한 날짜 큐에 넣어줌
}
for (int day = 0; q.size() > 0; day++)
{
int num_func = 0;
while (q.size() > 0 && q.front() <= day)
{
num_func++;
q.pop();
}
if (num_func)
answer.push_back(num_func);
}
return answer;
}
아래 q.pop하는 부분에서 q 비었는지 확인 안 해줘서 세그 떴었다 조건에 넣어주자~~
이거 좀 이쁘게 잘 푼 듯 ㅎ
'<algorithm> > 프로그래머스_고득점 kit' 카테고리의 다른 글
[프로그래머스 고득점kit] 스택/큐_프린터(c++) (0) | 2023.04.09 |
---|---|
[프로그래머스 고득점kit] 스택/큐_올바른 괄호(c++) (0) | 2023.04.09 |
[프로그래머스 고득점kit] 스택/큐_같은 숫자는 싫어(c++) (0) | 2023.04.09 |
[프로그래머스 고득점kit] 해시_베스트앨범(c++) (2) | 2023.04.06 |
[프로그래머스 고득점kit] 해시_위장(c++) (0) | 2023.04.06 |