본문 바로가기
SW Expert Academy

[24524] 레벨업 (JAVA)

by 댈팽이 2026. 5. 20.
728x90

# 문제 정보

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AZelvp3qmdDHBISV&categoryId=AZelvp3qmdDHBISV&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=JAVA&select-1=3&pageSize=10&pageIndex=1

 

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