๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 2399๋ฒˆ: ๊ฑฐ๋ฆฌ์˜ ํ•ฉ

by ์ฃผ๋ฐœ2 2020. 1. 29.
๋ฐ˜์‘ํ˜•

ใ…‚https://www.acmicpc.net/problem/2399

 

2399๋ฒˆ: ๊ฑฐ๋ฆฌ์˜ ํ•ฉ

์ฒซ์งธ ์ค„์— n(1 ≤ n ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” x[1], x[2], x[3], …, x[n]์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์€ 0 ์ด์ƒ 1,000,000,000 ์ดํ•˜์˜ ์ •์ˆ˜์ด๋‹ค.

www.acmicpc.net

์ฝ”๋“œ

import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		int[] x = new int[N];
		long allDistance = 0;	// ๋ชจ๋“  ์Œ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•œ ๊ฐ’
		
		for(int i=0; i<N; i++) 
			x[i] = scan.nextInt();
		
		for(int i=0; i<x.length; i++) 
			for(int j=0; j<x.length; j++) 
				allDistance += Math.abs(x[i]-x[j]);
		
		System.out.println(allDistance);
		scan.close();
	}

}

 

ํ’€์ด

๋ฌธ์ œ๋งŒ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

n^2๊ฐœ์˜ ๋ชจ๋“  ์Œ์— ๋Œ€ํ•ด์„œ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•œ ๊ฐ’์ด๋ฏ€๋กœ.

x์˜ ์ขŒํ‘œ๊ฐ€ 1 5 3 2 4 ์ผ๋•Œ,

์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์„œ ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

x์˜ ์ขŒํ‘œ๊ฐ€ 1์ผ๋•Œ...

1 ~ 5์˜ ๊ฑฐ๋ฆฌ : 4

1 ~ 3์˜ ๊ฑฐ๋ฆฌ : 2

1 ~ 2์˜ ๊ฑฐ๋ฆฌ : 1

1 ~ 4์˜ ๊ฑฐ๋ฆฌ : 3

4+2+1+3 = 10

 

์œ„์™€ ๊ฐ™์ด ๋ชจ๋“  ์ขŒํ‘œ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์ขŒํ‘œ๋“ค๊ณผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์„œ ๋”ํ•ด์ค€๋‹ค.

๋ฌธ์ œ์—์„œ x ์ขŒํ‘œ์˜ ๋ฒ”์œ„๊ฐ€ 0 ์ด์ƒ 1,000,000,000 ์ด๋ฏ€๋กœ,

๋ชจ๋“  ์Œ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•œ ๊ฐ’์€ int๊ฐ€ ์•„๋‹Œ long ์œผ๋กœ ์„ ์–ธํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€