문제 내용은 마을의 수와 이동비용을 입력으로 받은 뒤, 특정 마을에서 시작해서 모든 마을을 방문하되 이동 비용이 최소인 경우를 출력해줘야 한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
int[] map = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int ans = 0;
int max = 0;
for (int i = 0; i < map.length; i++) {
ans += map[i];
max = Math.max(max, map[i]);
}
System.out.println(ans - max);
}
}
문제 내용을 압축해보면, 결국 모든 마을을 방문해야 하기 때문에 비용이 가장 큰 하나의 경로만 제외해주면 정답인데 모든 이동 거리를 합치면서 최대값을 찾은 뒤, 출력 시 최대 값만 빼주면 바로 최소 비용을 얻을 수 있다
Leave a Reply