[Programmers] 택배 배달과 수거하기

2023. 5. 2. 10:47Computer Sciences/Problem Solve

https://school.programmers.co.kr/learn/courses/30/lessons/150369

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 방법

혼자서는 도저히 구현 방법이 떠오르지 않아 질문하기를 들어가보니 굇수님께서 해설한 글이 있어서 이를 참고했다.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {
    public long solution(int cap, int n, int[] deliveries, int[] pickups) {
        int deliver = 0, pickup = 0;
        long answer = 0;
        
        for (int i = n - 1; i >= 0; i--) {
            if (deliveries[i] != 0 || pickups[i] != 0) {
                int cnt = 0;
                while (deliver < deliveries[i] || pickup < pickups[i]) {
                    cnt++;
                    deliver += cap;
                    pickup += cap;
                }
                deliver -= deliveries[i];
                pickup -= pickups[i];
                answer += (i + 1) * cnt * 2;
            }
        }
        
        return answer;
    }
}

'Computer Sciences > Problem Solve' 카테고리의 다른 글

[Baekjoon] 1991번: 트리 순회  (0) 2023.05.12
[Baekjoon] 1912번: 연속합  (2) 2023.05.10
[Programmers] 미로 탈출  (0) 2023.05.01
[Programmers] 광물 캐기  (0) 2023.04.28
[Baekjoon] 2212번: 센서  (0) 2023.04.26