프로그래머스 기능개발 문제입니다. 딱히 스택 큐의 기능을 썼다보기다는.. 단순히 벡터 어레이를 어떻게 처리하는지에 초점을 맞췄습니다.
문제 정의
접근방법
- 각각의 작업들이 며칠내에 완료가 되는지에 대한 벡터를 구합니다.
- 첫 작업보다 빨리 완료되는 작업이 뒤에 나오는지를 확인해서, 카운터에 더합니다.
- 만약 첫 작업보다 늦게 완료되는 작업이 나오면, 카운터를
answer
벡터에push_back
합니다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <string> #include <vector> #include <iostream> using namespace std; vector<int> solution(vector<int> progresses, vector<int> speeds) { vector<int> answer; vector<int> v; for (int i=0; i<progresses.size(); i++) { int days = (100-progresses[i])/speeds[i]; int remaining = (100-progresses[i]) % speeds[i]; // 나머지가 있으면 하루 더 걸리는 것! if (remaining > 0) { v.push_back(days+1); } else { // 딱 떨어져서 나누어지는 경우! v.push_back(days); } } // v shows how many days left. (ex. [5, 10, 1, 1, 20, 1]) int prev = v[0]; int cnt = 0; for (int i=0; i < v.size(); i++) { if (v[i] <= prev) { cnt++; } else { answer.push_back(cnt); cnt = 1; prev = v[i]; } if (i == v.size()-1) { answer.push_back(cnt); } } return answer; } | cs |
'Developer > C, C++' 카테고리의 다른 글
[C++] 프로그래머스 - 다리를 지나는 트럭 (스택/큐) (0) | 2022.01.03 |
---|---|
[C++] 프로그래머스 - 프린터 (스택/큐) (0) | 2022.01.02 |
[C++] 프로그래머스 - 위장 (해시) (0) | 2021.12.31 |
[C++] 프로그래머스 - 베스트 앨범 (해시), sorting (0) | 2021.12.30 |
C, C++, Python, Java // Complie 언어, Interpreter언어 (0) | 2021.12.26 |
댓글