https://programmers.co.kr/learn/courses/30/lessons/42586?language=cpp
이번 문제는 스택/큐 문제였습니다.
《문제 풀이》
1. progresses 배열의 각 기능이 배포되기 위한 작업 기간을 구함
2. 구한 작업 기간들을 큐에 담음
3. 다음 작업 기간이 앞 차례의 작업 기간보다
✏︎ 짧거나 같다면 theNumber++
✏︎ 길다면 answer 배열에 theNumber를 담아줌
《C++ 코드》
#include <string>
#include <vector>
#include <queue>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
queue<int> q;
int day;
for (int i=0; i<progresses.size(); i++) {
day = 0;
while (progresses[i] < 100) {
progresses[i] += speeds[i];
day++;
}
q.push(day);
}
while (!q.empty()) {
int prev = q.front();
int theNumber = 1;
q.pop();
while (!q.empty() && prev >= q.front()) {
theNumber++;
q.pop();
}
answer.push_back(theNumber);
}
return answer;
}
개발 언어: C++
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 짝지어 제거하기 C++ (0) | 2022.02.14 |
---|---|
[프로그래머스] 문자열 압축 (0) | 2022.02.12 |
[프로그래머스] 가장 큰 수 (0) | 2022.02.10 |
[프로그래머스] 타겟 넘버 JavaScript (Lv.2) (0) | 2022.02.09 |
[프로그래머스] 등굣길 (0) | 2021.04.15 |