반응형
https://school.programmers.co.kr/learn/courses/30/lessons/150369
package Programmers;
public class 택배배달과수거하기 {
public static void main(String[] args){
택배배달과수거하기 T = new 택배배달과수거하기();
int cap = 4; //상차할수있는 택배 개수
int n= 5; // 배달지점 개수
int[] deliveries = {1, 0, 3, 1, 2};
int[] pickups = {0, 3, 0, 4, 0};
T.solution(cap, n, deliveries, pickups);
}
public long solution(int cap, int n, int[] deliveries, int[] pickups) {
long answer = 0;
int d = 0, p = 0;
//맨뒤에서부터 탐색
for (int i = n-1; i >= 0; i--) {
d += deliveries[i]; //배달
p += pickups[i]; //픽업
//0보다 클경우는 배달을 와야되는 지점임 0보다 작을때까지 계속돌림
while (d > 0 || p > 0){
d -= cap;
p -= cap;
answer += (i +1) * 2;
}
}
return answer;
}
}
1. 풀이방법
- n개의 집이면 n번째 집부터 1번째 집까지 탐색.
- 해당집에 몇번이나 와야되는디 d(배달), p(픽업) 변수로 확인 cap 만큼 계속 빼준다.
- 계속 돌면서 answer 에다가 (i+1) * 2 더해줌 (*2해주는 이유는 왕복이니까 )
※ 처음에는 갈때 올때 while 문 두개돌려서 포인터 두개놓고 계산하다가
도저히 아닌거 같아서 답변봤더니 너무 허무하게 풀림 ......................................
반응형
'기타 > 알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 마법의엘리베이터 (0) | 2023.04.27 |
---|---|
[알고리즘] 프로그래머스 - 이모티콘할인행사 (java) - dfs 탐색 (0) | 2023.04.26 |
[알고리즘] 프로그래머스 (개인정보 수집 유효기간) Java (1) | 2023.04.24 |
[알고리즘] 프로그래머스 - 숫자변환하기 (BFS, Java) (0) | 2023.04.20 |
[알고리즘] 프로그래머스 무인도여행 DFS 풀이 (자바,java) (1) | 2023.04.20 |