반응형

알고리즘 분류로 정렬 문제를 풀고있는데 이문제는 정렬의 문제가 아닌거 같다.

가장 중요한건 long 변수를 사용해야 한다는 점?

2중 반복문으로 전체를 계산했기 떄문에 시간 성능 나쁘다.

정렬을 하나 마나 똑같을 테고..

좀 더 빠른 방법이 있긴 할텐데..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.FileInputStream;
import java.util.*;
 
public class Main {
    public static void main(String args[]) throws Exception {
        // Scanner sc = new Scanner(System.in);
        Scanner sc = new Scanner(new FileInputStream("input.txt"));
        int N = sc.nextInt();
        // 0 이상 1,000,000,000 이하의 정수 이기떄문에 long 변수 사용
        long[] arr = new long[N];
        long sum = 0;
 
        for (int i = 0; i < N; i++) {
            arr[i] = sc.nextLong();
        }
 
        // 정렬 안했고 2중 반복문을 통해서 절대값으로 처리해서 계산했다.
        // i == j 일때 처리하지 않은 이유는 어차피 arr[i] - arr[j] 는 0이 되기 때문
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                sum += Math.abs(arr[i] - arr[j]);
            }
        }
        System.out.println(sum);
    }
}
 
cs


반응형

+ Recent posts