문제 링크
요약
- 무한루프에 안빠지게 조심하자.
최종
결과
- Queue를 사용하는 문제고, queue를 사용하면 풀 수 있지만 queue 자료구조를 사용하지는 않았다.
- 대신 index를 움직여서 인자로 주어진
progresses가 queue처럼 작동하도록 했다.
- 대신 index를 움직여서 인자로 주어진
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> ret;
int iter = 0;
while (iter < progresses.size()) {
int completed = iter;
for (int i = iter; i < progresses.size(); i++) {
progresses[i] += speeds[i];
}
for (int i = iter; i < progresses.size(); i++) {
if (progresses[i] < 100) {
iter = i;
break;
} else if (i + 1 == progresses.size()) {
iter = i + 1;
}
}
if (completed < iter) {
ret.push_back(iter - completed);
}
}
return ret;
}- 여기서 좀 삽질했던건 저 L21-23 이다.
- 이 코드가 없으면 남아있는 모든 놈이 100보다 클 때
iter가 움직이지 않아 무한루프를 돈다.
- 이 코드가 없으면 남아있는 모든 놈이 100보다 클 때
