본문 바로가기

알고리즘 삽질장

[BOJ] 9613번 - GCD 합

반응형


문제설명

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

 

9613번: GCD 합

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

www.acmicpc.net

사고과정

  • 처음에 입력으로 주어지는 문제를 대충 읽어서 좀 헤맸다.. 테스트 케이스 숫자 이후로 입력주어질 때 가장 맨 처음에 나오는 숫자는 다음에 나올 숫자의 개수를 의미했다.. 문제 좀 제대로 읽자 제에발!
  • math 라이브러리와 모든 쌍을 구하기 위해 itertools의 조합 라이브러리를 활용

풀이

import math
from itertools import combinations
import sys

input = sys.stdin.readline
for tc in range(int(input())):
    array = list(map(int, input().split()))
    n, array = array[0], array[1:]
    result = 0
    for comb in list(combinations(array, 2)):
        result += math.gcd(comb[0], comb[1])
    print(result)
반응형