https://school.programmers.co.kr/learn/courses/30/lessons/150369?language=cpp

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

#include <string>
#include <vector>

using namespace std;
/*
3가지 조건
배달할 물건이나, 회수할 물건이 i번째 까지 존재한다면, 반드시 i번째 까지는 적어도 한 번은 가야함

한 번 출발하여, 물류창고로 돌아오면, cap만큼의 배달을 수행할 수 있고, cap만큼의 물건을 회수 해 올 수 있음.

한 곳에서 택배를 전부 배달하지 못했거나, 회수하지 못했다면,  물류창고로 돌아왔다가, 다시 같은 장소로 떠나야 함
*/
long long solution(int cap, int n, vector<int> deliveries, vector<int> pickups) {
    long long answer = 0;
    int d = 0; 
    int p = 0;
    for(int idx = n - 1; idx >= 0; --idx){
        int cnt = 0;
        d -= deliveries[idx];// idx+1 거리의 집의 택배 배달할 갯수 차감
        p -= pickups[idx];// idx + 1 거리의 집의 택배 수거할 갯수 차감
        while(d <0 || p<0){
            d+= cap;
            p+= cap;
            cnt++;
        }
        answer += (idx + 1) * 2 * cnt; 
    }
    return answer;
}

 

 

타인풀이

https://school.programmers.co.kr/questions/43364

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

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

오픈채팅방 (lv2)  (0) 2024.10.30
캐시 lv-2  (0) 2024.08.06
땅따먹기 lv2  (0) 2024.08.01
할인행사 lv2  (0) 2024.06.27
모음 사전  (0) 2023.08.26

+ Recent posts