https://school.programmers.co.kr/learn/courses/30/lessons/42586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 과정
착안
먼저 배포되어야 하는 프로세스 순으로 남은 작업 날짜를 계산하여 마지막으로 배포한 프로세스들 중 가장 작업 날짜가 긴 것보다 작으면 해당 프로세스와 함께 배포, 그렇지 않다면 함께 배포할 수 없다.
구현
프로세스별로 필요한 작업 날짜를 계산할 때, 남은 작업량을 작업 속도로 나눈 뒤 올림 계산을 하는 점과 가장 마지막에 배포한 프로세스들 중 작업 날짜가 가장 긴 것을 저장하여 비교하는 것에 유의하여 문제를 해결하였다.
[스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~
더보기
#include <vector>
using namespace std;
vector<int> solution(vector<int> progresses, vector<int> speeds)
{
vector<int> answer;
int day = 0;
for (int i = 0; i < progresses.size(); i++)
{
int remain = (99 - progresses[i]) / speeds[i] + 1;
if (day < remain)
{
day = remain;
answer.push_back(1);
}
else
answer.back()++;
}
return answer;
}
실행 결과
'C++ 코딩 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Programmers] 전화번호 목록 (0) | 2024.01.07 |
---|---|
[Programmers] [1차] 뉴스 클러스터링 (0) | 2024.01.06 |
[Programmers] 의상 (0) | 2024.01.02 |
[Programmers] 행렬의 곱셈 (0) | 2024.01.02 |
[Programmers] n^2 배열 자르기 (0) | 2024.01.02 |
댓글