일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 소수 체크
- colorSyntax
- 다이내믹 프로그래밍
- 깊이 우선 탐색
- 브루트포스 알고리즘
- Git Convention
- codeSyntaxHighlight
- 옵셔널 체이닝 연산자
- mermaid js
- 2018 KAKAO BLIND RECRUITMENT
- C++
- 이분탐색
- 18111
- n^2 배열 자르기
- 4796
- 10162
- 1620
- js
- 정수 삼각형
- react
- 구간 합 구하기 4
- 위클리 챌린지
- BOJ
- 프로그래머스
- 5525
- 숫자 문자열과 영단어
- Hasing
- 주식 가격
- 없는 숫자 더하기
- javascript
Archives
- Today
- Total
개발하는 kim-hasa
[c++][프로그래머스] 기능 개발 본문
https://programmers.co.kr/learn/courses/30/lessons/42586
코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는
programmers.co.kr
기능이 개발이 완료가 되었다면, 앞에서부터 완료가 된건 한번에 배포합니다.
남은 일수를 구한 후, 앞에서부터 일수보다 작다면 이미 완료된 기능이므로 한번에 배포합니다.
그렇지 않은 경우는 배포 후 다음 날짜가 맞출 때 배포합니다.
사실 풀고나서 알았는데 queue를 이용해서 완료가 되었을 때 앞에서부터 배포하는 방법으로 했으면 더욱 쉬웠을 것 같습니다. 다른 분들의 풀이를 보고 더 연습해봐야겠습니다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds) {
vector<int> answer;
int len = progresses.size(); // 전체 일의 갯수
vector<int> extraWork; // 완료까지 남은 일의 수
for(int i=0; i<len; i++)
{
int extra = 100 - progresses[i]; // 남은 일의 수
if(extra % speeds[i] == 0) // 나누어 떨어진다면
{
extra = extra/speeds[i];
extraWork.push_back(extra);
}
else // 나누어 떨어지지 않는다면
{
extra = extra/speeds[i];
extraWork.push_back(extra + 1);
}
}
int finCount = 1;
int finWork = extraWork[0]; // 초기값 저장
for(int j=1; j<len; j++)
{
if(extraWork[j] <= finWork) // 저장값보다 작다면
{
finCount++; // 같이 끝남
}
else // 크다면
{
answer.push_back(finCount); // 배포 완료
finWork = extraWork[j]; // 새로 저장
finCount = 1; // 카운트 초기화
}
}
answer.push_back(finCount); // 마지막 남은 값 저장
return answer;
}
'Algorithm > Programmers(c++)' 카테고리의 다른 글
[c++][프로그래머스] 위장 (0) | 2021.08.13 |
---|---|
[c++][프로그래머스] 주식 가격 (0) | 2021.08.13 |
[c++][프로그래머스] H - index (0) | 2021.08.11 |
[c++][프로그래머스] 소수 찾기 (0) | 2021.08.10 |
[c++][프로그래머스] 위클리 챌린지 2주차 (0) | 2021.08.09 |