Algorithm๐Ÿฅ‡

9613.GCDํ•ฉ

hae02y 2023. 10. 19. 16:00
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

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

์ž…๋ ฅ

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

์ถœ๋ ฅ

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

์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งžํžŒ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ
1 ์ดˆ 128 MB 33868 13838 11355 41.641%

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

ํ’€์ด

์ฝ”๋“œ

import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  

public class GCD์˜ํ•ฉ {  
    public static void main(String[] args) throws IOException {  

        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));  

        int t = Integer.parseInt(br.readLine());  

        for(int i=0; i<t; i++){  
            String[] arr = br.readLine().split(" ");  

            long answer = 0;  

            int n = Integer.parseInt(arr[0]);  

            int[] intArr = new int[n];  

            for(int j=0; j<intArr.length; j++){  
                intArr[j] = Integer.parseInt(arr[j+1]);  
            }  

            for(int j=0; j<intArr.length-1; j++){  
                for(int k= j+1; k<intArr.length; k++){  
                    answer += gcd(intArr[j], intArr[k]); //๋ชจ๋“ ์ผ€์ด์Šค๋ฅผ ์ „๋ถ€ ํ™•์ธํ•œ๋‹ค.  
                }  
            }  

            System.out.println(answer);  
        }  

        br.close();  

    }  

    public static int gcd(int a, int b){  
        while (b != 0){  
            int r = a % b;  
            a = b;  
            b = r;  
        }  
        return a;  
    }  
}
๋ฐ˜์‘ํ˜•