반응형
programmers.co.kr/learn/courses/30/lessons/42586
stack에 분류되어있지만 그렇게 풀지 않았습니다.
풀이방법
1. 앞 기능을 pivot으로 잡고 이보다 큰 남은 일 수가 있다면 pivot을 해당 인덱스로 옮겨줍니다. 그리고 셌던 기능 개수를 answer에 push 해줍니다.
2. 작거나 같다면 같은날에 배포되므로 cnt를 1씩 증가시켜줍니다.
Code
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
vector <int> releaseDay;
for(int i = 0; i < progresses.size(); i++){
int rDay = (100 - progresses[i]) / speeds[i];
if((100 - progresses[i]) % speeds[i] == 0){
releaseDay.push_back(rDay);
}else{
releaseDay.push_back(rDay + 1);
}
}
int funcCnt = 1;
int pivot = 0;
for(int i = 1; i < releaseDay.size(); i++){
if(releaseDay[pivot] >= releaseDay[i]){
funcCnt++;
}else{
pivot = i;
answer.push_back(funcCnt);
funcCnt = 1;
}
if( i== releaseDay.size() - 1) answer.push_back(funcCnt);
}
return answer;
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 백준(BOJ) 5639번 : 이진 검색 트리 (0) | 2021.03.18 |
---|---|
(C++) - 프로그래머스(연습문제) : 올바른 괄호 (0) | 2021.03.02 |
(C++) - 백준(BOJ) 17178번 : 줄서기 (0) | 2021.02.17 |
(C++) - 프로그래머스(고득점 kit - 힙(heap)) : 이중우선순위큐 답 (0) | 2021.02.08 |
(C++) - 프로그래머스(고득점 kit - 스택/큐) : 프린터 답 (2) | 2021.02.05 |