반응형

- 어차피 순서대로 도니까 큐가 편할 듯 하다
- 큐에 인덱스를 저장해두고, 해당 processes[q.top()]이 100보다 크면 카운터를 올려준다
- 카운터가 0이 아니면, 뭔가 완료됐다는 뜻이므로, answer에 넣는다
#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 size = progresses.size();
for(int i=0; i<size; i++) {
q.push(i);
}
while(!q.empty()) {
int cnt = 0;
for(int i=0; i<size; i++) {
progresses[i] += speeds[i];
}
while(!q.empty() && progresses[q.front()] >= 100) {
cnt++;
q.pop();
}
if(cnt != 0) answer.push_back(cnt);
}
return answer;
}
- 처음에는 또 어렵게 생각했었다
- pair<pair<int, int> int> 이렇게 모든 정보와 인덱스까지 저장하려 했었는데 하등 쓸모없는 짓이었다.
- 언제쯤 문제를 쉽게 생각할까
반응형
'코딩테스트' 카테고리의 다른 글
[c++] 프로그래머스 - 프렌즈4블록 (0) | 2024.08.15 |
---|---|
[C++] 프로그래머스 - 이중우선순위큐 (0) | 2024.04.15 |
[C++] 프로그래머스 - 프로세스 (0) | 2024.04.14 |
[C++][완전탐색] 프로그래머스 - 피로도 (0) | 2024.03.11 |
[C++][정렬] 프로그래머스 - 가장 큰 수 (0) | 2024.03.05 |