728x90
https://school.programmers.co.kr/learn/courses/30/lessons/150369
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
728x90
메모리: 83.4 MB, 시간: 20.63 ms
사용 알고리즘: 구현
class Solution {
public long solution(int cap, int n, int[] deliveries, int[] pickups) {
long answer = 0;
// 가장 뒤에 있는 배달지
int lastDelivery = -1;
for(int i = n - 1; i >= 0; i--) {
if(deliveries[i] != 0) {
lastDelivery = i;
break;
}
}
// 가장 뒤에 있는 수거지
int lastPickup = -1;
for(int i = n - 1; i >= 0; i--) {
if(pickups[i] != 0) {
lastPickup = i;
break;
}
}
// 맨 뒤 집부터 cap만큼 배달 & 수거
int dCap, pCap;
while(lastDelivery >= 0 || lastPickup >= 0) {
answer += Math.max(lastDelivery + 1, lastPickup + 1) * 2;
dCap = cap;
pCap = cap;
for(int i = lastDelivery; i >= 0; i--) {
if(deliveries[i] <= dCap) {
dCap -= deliveries[i];
lastDelivery--;
}
else {
deliveries[i] -= dCap;
break;
}
}
for(int i = lastPickup; i >= 0; i--) {
if(pickups[i] <= pCap) {
pCap -= pickups[i];
lastPickup--;
}
else {
pickups[i] -= pCap;
break;
}
}
}
return answer;
}
}728x90
'Problem Solving > Programmers' 카테고리의 다른 글
| [프로그래머스, 17677] [1차] 뉴스 클러스터링 (java) (0) | 2026.01.08 |
|---|---|
| [프로그래머스, 284530] 연도 별 평균 미세먼지 농도 조회하기 (mysql) (0) | 2026.01.07 |
| [프로그래머스, 293261] 물고기 종류 별 대어 찾기 (mysql) (0) | 2026.01.03 |
| [프로그래머스, 132265] 롤케이크 자르기 (java) (0) | 2025.12.16 |
| [프로그래머스, 64065] 튜플 (java) (0) | 2025.12.15 |