‡ CODING TEST STUDY ‡/º 백준

[백준 | Java Bronze II ] (#14487) 욱제는 효도쟁이야!!

Trudy | 송연 2024. 7. 14. 21:09

문제

https://www.acmicpc.net/problem/14487


 

접근

둘째 줄에 i번째 마을과 i+1번째 마을의 이동비용 vi가 n개 주어진다. n번째 vi는 n번째 마을과 1번째 마을의 이동비용을 의미한다. (1 ≤ vi ≤ 1,000)

 

1 6 5 2 4

 

n=5

1 : 1번째 - 2번째 마을

6 : 2번째 - 3번째 마을

5: 3번째 - 4번째 마을

2: 4번째 - 5번째 마을

4: 5번째 - 1번째 마을 

 

원형이라서 모든 곳을 다 돌아야해서 똑같은 거 아닌가..? 했지만 생각해보니 가장 비싼 한 곳만 안들리도록 하면 됐었던 문제


최종 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br  = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int[] cost = new int[n];
        int count = 0;
        for (int i = 0; i < n; i++) {
            cost[i] = Integer.parseInt(st.nextToken());
            count += cost[i];
        }
        //가장 비용이 큰 곳을 제거
        Arrays.sort(cost);
        count -= cost[n - 1];

        System.out.println(count);
    }
}