프로그래머스 기능개발
본문 바로가기
알고리즘 모음집/New 알고리즘

프로그래머스 기능개발

by KyeongMin 2020. 8. 13.
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42586

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 ��

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>
#include <queue>
using namespace std;

vector<int> solution(vector<int> progresses, vector<int> speeds) {
	vector<int> answer;
	queue<int> q;
	for (int i = 0; i < progresses.size(); i++) {
		int A = 0;
		A = (100 - progresses[i]);
		for (int j = 1; j <= 100; j++) {
			if (A <= speeds[i] * j) {
				A = j;// A에 만들어지는 일자 저장
				break;
			}
		}
		if(q.empty())q.push(A);
		else {
			if (q.front() < A) {
				answer.push_back(q.size());//만들어지는 갯수 저장
				while (!q.empty())q.pop();
				q.push(A);
			}
			else q.push(A);//앞선것보다 먼저 만들어진것 출하 못함 저장
		}

	}
	if (q.size() != 0)answer.push_back(q.size());
	return answer;
}
int main(void) {
	vector<int> a = solution({ 93,30,55 }, { 1,30,5 });
	for (int i = 0; i < a.size(); i++) {
		cout << a[i] << " ";
	}
	cout << endl;
	return 0;
}

지금은 단순한 문제를 풀기에 코드 양이 적습니다.  무튼 이문제의 포인트는 분류를 나눠야합니다. 

저는 우선 끝나는 일수를 저장하면서  queue 큐의 구조상 제일 위에가 제일 먼저들어가있는 것인데 

이것보다 큰값이 나올때까지 저장을 시키고 큰값이 나오면 answer에 저장하고 비워주는 식으로 문제를 풀었습니다. 

참고해주세요. 

728x90
반응형

'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글

17141 연구소2  (0) 2020.08.19
16234 인구이동  (0) 2020.08.18
15684 사다리 조작  (0) 2020.08.13
16235 나무 재테크  (0) 2020.08.12
프로그래머스 주식가격  (0) 2020.08.12

댓글