박오이님
무미건조한 개발자
박오이님
전체 방문자
오늘
어제
  • 뭥미 (101)
    • 프로젝트 (8)
      • 자가 보호 (3)
      • 주식 시장 분석 도구 (5)
    • 보안 (7)
      • 개론 (2)
      • 웹 (2)
      • 시스템 (2)
    • 개발 (69)
      • C++ (12)
      • Win32 (7)
      • MFC (2)
      • 자료구조 (8)
      • 알고리즘 (22)
      • 백준 (9)
      • 프로그래머스 (4)
      • LeetCode (0)
      • 개발자 면접 준비 (4)
      • OpenGL (1)
    • 서적 (13)
      • Effective C++ (9)
      • Effective Modern C++ (4)
    • 관심사 (4)
      • 재테크 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 코딩컨벤션
  • JSON
  • 개발
  • 프로세스메모리
  • 동빈나
  • std
  • 알고리즘
  • 플로이드와샬알고리즘 #최단경로 #백준 #알고리즘 #개발 #C #C++
  • CPP
  • DFS #BFS #알고리즘 #프로그래밍 #코딩테스트 #코딩 #C++ #C
  • EffectiveC++
  • 윈도우프로그래밍
  • 크루스칼알고리즘
  • 나동빈
  • 안경잡이개발자
  • C
  • 합집합찾기
  • 에라토스테네스의 체 #C #C++ #개발 #알고리즘 #BFS #DFS #백준 #백준알고리즘
  • vcpkg
  • 백준 #알고리즘 #플로이드와샬 #DFS #BFS #C #C++
  • C++
  • 윈도우개발자
  • Functional
  • 최소간선비용
  • 나동빈 #알고리즘 #동빈나
  • 윈도우시스템프로그래밍
  • 에라토스테네스의 체 #알고리즘 #개발 #C #C++ #소수 #소수판별
  • jsoncpp
  • 윈도우
  • 시스템프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
박오이님

무미건조한 개발자

개발/프로그래머스

스택/큐 42586 기능개발

2019. 5. 29. 09:11

문제 설명

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.

또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.

먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.

제한 사항

  • 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다.
  • 작업 진도는 100 미만의 자연수입니다.
  • 작업 속도는 100 이하의 자연수입니다.
  • 배포는 하루에 한 번만 할 수 있으며, 하루의 끝에 이루어진다고 가정합니다. 예를 들어 진도율이 95%인 작업의 개발 속도가 하루에 4%라면 배포는 2일 뒤에 이루어집니다.

입출력 예

progressesspeedsreturn

[93,30,55] [1,30,5] [2,1]

입출력 예 설명

첫 번째 기능은 93% 완료되어 있고 하루에 1%씩 작업이 가능하므로 7일간 작업 후 배포가 가능합니다.
두 번째 기능은 30%가 완료되어 있고 하루에 30%씩 작업이 가능하므로 3일간 작업 후 배포가 가능합니다. 하지만 이전 첫 번째 기능이 아직 완성된 상태가 아니기 때문에 첫 번째 기능이 배포되는 7일째 배포됩니다.
세 번째 기능은 55%가 완료되어 있고 하루에 5%씩 작업이 가능하므로 9일간 작업 후 배포가 가능합니다.

따라서 7일째에 2개의 기능, 9일째에 1개의 기능이 배포됩니다.

 

코드

#include  <string>
#include  <vector>
#include  <queue>

using namespace std; 

vector solution(vector progresses, vector speeds) { 
	vector answer; 
	queue Queue; 	//완성된 작업을 넣을 큐

	for (int i = 0; i < progresses.size(); i++) 
	{ 
		Queue.push((100 - progresses[i]) / speeds[i]); 
	} 

	int Pivot = Queue.front(); 
	Queue.pop(); 
    
	int Count = 1; 

	while (!Queue.empty()) 
	{ 
		if (Pivot >= Queue.front()) 
		{ 
			Count++; 
		} 
		else 
		{ 
			answer.push_back(Count); 
			Pivot = Queue.front(); 
			Count = 1; 
		} 
		
        Queue.pop(); 
	} 

	answer.push_back(Count); 
    
	return answer; 
}

 

'개발 > 프로그래머스' 카테고리의 다른 글

스택/큐 42748 K번째수  (0) 2019.05.29
스택/큐 42588문제 탑  (0) 2019.05.28
스택/큐 주식가격  (0) 2019.05.27
    '개발/프로그래머스' 카테고리의 다른 글
    • 스택/큐 42748 K번째수
    • 스택/큐 42588문제 탑
    • 스택/큐 주식가격
    박오이님
    박오이님
    긍정도 아니고 부정도 아닌 0

    티스토리툴바