728x90

시간 초과가 나서 실패를 했다. 구현 방식은 이해했는데 최대공약수로만 나눠도 된다는 점을 생각하지 못해서 시간 초과가 났다. 

 

 

 

import math
 
def check(n,list):
    for i in range(0,len(list)):
        if list[i]%n==0:
            return False
 
    return True
 
 
def solution(arrayA, arrayB):
    answer = [ ]
    a = arrayA[0]
    b = arrayB[0]
 
 
    a_list = [ ]
    b_list = [ ]
 
    # 한 쪽의 공약수들을 구한 후 다른 사람의 모든 원소에 대해 나누기가 안되면 됌
 
    for i in range(1,len(arrayA)):
        a = math.gcd(a,arrayA[i])
 
 
    for i in range(1,a+1):
        if a%i==0:
            a_list.append(i)
 
    a_list.append(a)
 
    for i in range(0,len(arrayB)):
        for j in range(0,len(a_list)):
            if check(a_list[j],arrayB) == True:
                answer.append(a_list[j])
 
    #############################################################################    
 
    for i in range(1,len(arrayB)):
        b = math.gcd(b,arrayB[i])
 
 
 
    for i in range(1,b+1):
        if b%i==0:
            b_list.append(i)
 
    b_list.append(b)
 
    for i in range(0,len(arrayA)):
        for j in range(0,len(b_list)):
            if check(b_list[j],arrayA) == True:
                answer.append(b_list[j])        
 
 
 
    if len(answer)==0:
        return 0
 
 
    return max(answer)
728x90

+ Recent posts