코딩테스트 준비/백준

[백준] 9613번 GCD 합 - 파이썬(Python)

youjin86 2021. 8. 23. 17:23

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

 

9613번: GCD 합

첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진

www.acmicpc.net

 

문제

 

접근법

 

문제 잘 읽자.

테스트 케이스에서 처음의 수는 수의 개수 n이고, 그 다음부터 n개의 수가 주어짐.

4 10 20 30 40 -> n=4, 10,20,30,40 4개로 GCD 구하는 것


앞에서부터 하나씩 비교하며 GCD를 구하며 합을 누적시킴.

 

GCD함수인 math.gcd()를 사용하였는데, 비교를 해보니 이걸 사용하나 직접 구현하나 시간은 거의 비슷함.

때문에 직접 구현을 할 수 있으니 이제 함수 사용에 익숙해보고자 함.

 

 

코드

import sys
import math
n=int(input())

for i in range(n):
    arr=list(map(int, sys.stdin.readline().split()))
    total=0
    for j in range(1,len(arr)):
        for k in range(j+1,len(arr)):
            total+=math.gcd(arr[j],arr[k])

    print(total)