-
기능개발알고리즘 풀이/Programmers 2021. 12. 19. 12:38728x90
https://programmers.co.kr/learn/courses/30/lessons/42586
#include <string> #include <vector> #include <cmath> using namespace std; vector<int> solution(vector<int> progresses, vector<int> speeds) { vector<int> answer; const int MAX_PROGRESS = 100; int index = 0; while (true) { int cnt = 0; const int calc = ceil((MAX_PROGRESS - progresses[index]) / (float)speeds[index]); for (int i = index; i < progresses.size(); ++i) { if (calc != 0) { progresses[i] += (speeds[i] * calc); } else { progresses[i] += speeds[i]; } } for (int i = index; i < progresses.size(); ++i) { if (progresses[i] >= 100) { ++cnt; } else { index = i; answer.push_back(cnt); break; } if (cnt == progresses.size() - index) { answer.push_back(cnt); return answer; } } if (progresses.size() - 1 == index) { if (progresses[index] < 100) { answer.push_back(1); } break; } } return answer; }
풀고보니 너무 더럽다.
코딩테스트 문제 유형에 익숙해져야겠다.
예외 케이스가 통과 안되서 한참을 생각햇네..
728x90'알고리즘 풀이 > Programmers' 카테고리의 다른 글
다리를 지나는 트럭 (0) 2021.12.19 주식가격 (0) 2021.12.19 프린터 (0) 2021.12.19 위장 (0) 2021.12.19 베스트앨범 (0) 2021.12.19