728x90
반응형
import sys
n = int(sys.stdin.readline())
arr = []
for i in range(n):
arr.append(int(sys.stdin.readline()))
arr.sort()
ans = []
for i in range(2,arr[0]+1):
cnt = 1
for j in range(1,len(arr)):
if arr[0] % i == arr[j] % i:
cnt = cnt + 1
if cnt == len(arr):
ans.append(i)
print(ans)
시간 초과가 났다. 2중 반복문이 시간을 많이 잡아 먹는것 같다.
import sys
import math
def get_GCD(nums):
_gcd = nums[0]
for n in nums[1:]:
_gcd = math.gcd(_gcd, n)
return _gcd
n = int(sys.stdin.readline())
arr = []
for i in range(n):
arr.append(int(sys.stdin.readline()))
z = max(arr)
k = []
cnt = 0
for i in range(2,z+2):
if (z % i) not in k:
k.append(z % i)
temp = []
ans = []
for i in k:
for j in arr:
if j-i < 0:
break
else:
temp.append(j-i)
if len(temp) > 0:
_gcd = get_GCD(temp)
if _gcd != 1 and _gcd not in ans:
ans.append(_gcd)
temp = []
for m in ans:
print(m, end=' ')
이 친구도 시간초과
728x90
반응형
'Algorithm & Data Structure' 카테고리의 다른 글
백준 - 15954번(정수론, 전체탐색) (0) | 2022.01.28 |
---|---|
백준 - 9375번 (0) | 2022.01.27 |
백준 - 13305(그리디 알고리즘) (0) | 2022.01.25 |
백준 - 1931번 (0) | 2022.01.24 |
백준 - 11047(그리디 알고리즘) (0) | 2022.01.24 |