프로그래머스 기능개발 C++ 풀이
https://programmers.co.kr/learn/courses/30/lessons/42586
// 일단 100에서 progresses[i]를 빼고 이 값을 speeds[i]로 나누자
// 딱 떨어지면 그냥 안떨어지면 + 1 하고 q에 넣는다.
// 그리고 while문을 2번 돌린다.
// 처음 while문에서 num = q.front하고 cnt = 1하고 그 안의 while문에서 q.front를 또해 이 값이 num보다 작아야 한다. 그래야 기다리는 거니까
// 그리고 안의 while문 빠져 나오면 answer에 push back 해준다.
#include <string>
#include <vector>
#include <queue>
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 temp = 100 - progresses[i];
if (temp / speeds[i] != 0)
q.push(temp / speeds[i] + 1);
else
q.push(temp / speeds[i]);
}
while(!q.empty()){
int num = q.front();
q.pop();
int cnt = 1;
while(!q.empty() && q.front() <= num){
q.pop();
cnt++;
}
answer.push_back(cnt);
}
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 쇠막대기 (0) | 2023.07.07 |
---|---|
[프로그래머스] 프린터 (0) | 2023.07.07 |
[프로그래머스] 다리를 지나는 트럭 (0) | 2023.07.07 |
[프로그래머스] 탑 (0) | 2023.07.07 |
[프로그래머스] 베스트앨범 (0) | 2023.07.07 |