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
'🟢 알고리즘 문제 풀이 > Programmers' 카테고리의 다른 글
| [파이썬] 프로그래머스 점 찍기 (0) | 2023.01.13 |
|---|---|
| [파이썬] 프로그래머스 주차 요금 계산 (0) | 2023.01.13 |
| [파이썬] 프로그래머스 택배상자 (0) | 2023.01.11 |
| [파이썬] 프로그래머스 두 큐 합 같게 만들기 (0) | 2023.01.10 |
| [파이썬] 프로그래머스 최솟값 만들기 (0) | 2023.01.10 |