728x90
# 문제 정보
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
# 정답 코드
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while (T-- > 0) {
int N = sc.nextInt();
int[] checkPoint = new int[N];
for (int n = 0; n < N; n++) {
checkPoint[n] = sc.nextInt();
}
int answer = Integer.MAX_VALUE;
for (int delete_idx = 1; delete_idx < N - 1; delete_idx++) {
int distance = 0;
int cur = checkPoint[0];
for (int i = 1; i < N; i++) {
if (i == delete_idx) continue;
distance += Math.abs(cur - checkPoint[i]);
cur = checkPoint[i];
}
answer = Math.min(answer, distance);
}
System.out.println(answer);
}
}
}
시작점과 끝점을 제외한 모든 점들을 제거해보며 최소 이동 거리를 구한다.
체크포인트를 순서대로 방문하면서 이동 거리를 구한다.
현재까지 기록한 최소 이동 거리보다 작으면 갱신한다.
728x90
'SW Expert Academy' 카테고리의 다른 글
| [24396] 공과 상자 (JAVA) (0) | 2026.05.20 |
|---|---|
| [24420] 집합 비교 (JAVA) (0) | 2026.05.20 |
| [24696] 직육면체 자르기 (JAVA) (0) | 2026.05.20 |
| [25330] 거리 문자열 (JAVA) (0) | 2026.05.20 |
| [25469] 페인트칠 (JAVA) (0) | 2026.05.20 |