01-10 04:27
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

miinsun

[BAEKJOON] ๋ฐฑ์ค€ ๊ธฐ์ดˆ ์ˆ˜ํ•™ 9613 :: GCD ํ•ฉ ๋ณธ๋ฌธ

Algorithm/Baekjoon

[BAEKJOON] ๋ฐฑ์ค€ ๊ธฐ์ดˆ ์ˆ˜ํ•™ 9613 :: GCD ํ•ฉ

miinsun 2022. 3. 28. 01:18

 

๐Ÿ’ฌ  ๋ฌธ์ œ ์„ค๋ช…

์–‘์˜ ์ •์ˆ˜ n๊ฐœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์Œ์˜ GCD์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

* GCD๋Š” ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค

 

๐Ÿ”จ  ์ž…์ถœ๋ ฅ ์˜ˆ

์ž…๋ ฅ 

  • ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ t (1 ≤ t ≤ 100)์ด ์ฃผ์–ด์ง„๋‹ค.
  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. 
  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜ n (1 < n ≤ 100)๊ฐ€ ์ฃผ์–ด์ง€๊ณ , ๋‹ค์Œ์—๋Š” n๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
  • ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜๋Š” 1,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

  • ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์Œ์˜ GCD์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1)

3
4 10 20 30 40
3 7 5 12
3 125 15 25

 

์˜ˆ์ œ ์ถœ๋ ฅ 1)

70
3
35

 

 

๐Ÿ’ป  Main.java

  • ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹ gcd(int a, int b)๋ฅผ ํ™œ์šฉํ•ด์„œ ํ’€์ž
  • ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์„ ์‹ ๊ฒฝ์ป๋‹ค๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.
  • 1,000,000 ์ž๋ฆฟ์ˆ˜๋ฅผ ์‹ ๊ฒฝ์จ์•ผํ•ด์„œ total์€ long ํ˜•์ด ๋˜์•ผํ•œ๋‹ค. 
/* ๋ฐฑ์ค€ ๊ธฐ์ดˆ ์ˆ˜ํ•™  - 9613 :: GCD ํ•ฉ */
import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int t = sc.nextInt();
		
		for(int i = 0; i < t; i++) {
			int n = sc.nextInt();
			int[] arr = new int [n];
			for(int j = 0; j < n; j++) {
				arr[j] = sc.nextInt();
			}

			long total = 0;
			for(int j = 0; j < n - 1; j++) {
				for(int k = j + 1; k < n; k++) {
					total += gcd(arr[j], arr[k]);
				}
			}
			System.out.println(total);
		}
		
		sc.close();
	}
	
	public static int gcd(int a,int b) {
		if(b == 0) return a;
		return gcd(b, a % b);
	}
}

 

 

Comments