[백준 29891] 체크포인트 달리기 [Java]
2025. 10. 11. 17:03ㆍPS 풀이/Baekjoon Online Judge
문제
29891번: 체크포인트 달리기
boj.ma
풀이
문제 요약
주어진 N개의 체크포인트 중 한 번에 최대 K개씩 체크할 수 있을 때, 모두 왕복하기 위한 최소 이동 비용을 구하자.
아이디어
주어진 모든 체크포인트를 들러야하므로, 절댓값이 큰 체크포인트부터 K개의 체크포인트를 체크하며 왕복해, 전체 이동 비용을 낮춰야 한다.
양수/음수는 따로 계산해야한다는 점에 유의하자.
// Solve
Arrays.sort(A);
long sum = 0;
for (int i = 0; i < N && A[i] < 0; i += K) {
sum += (-A[i]);
}
for (int i = N - 1; i >= 0 && A[i] > 0; i -= K) {
sum += A[i];
}
// Output
System.out.println(sum * 2);
풀이 시간
10분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/29891.java
problem-solving/baekjoon-online-judge/easy/29891.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
| [백준 09272] 상근이의 아이디어 [Java] (0) | 2025.10.21 |
|---|---|
| [백준 23350] K 물류창고 [Java] (0) | 2025.10.12 |
| [백준 09440] 숫자 더하기 [Java] (0) | 2025.10.11 |
| [백준 16927] 배열 돌리기 2 [Java] (0) | 2025.10.09 |
| [백준 15927] 회문은 회문아니야!! [Java] (0) | 2025.10.08 |