alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 17087 숨바꼭질 6_파이썬 본문
17087 숨바꼭질 6 www.acmicpc.net/problem/17087
문제 풀기 전 공부할 것 : 수학, 정수론, 유클리드 호제법
풀이
<내용>
- 수빈이가 x+d나 x-d로 모든 동생들을 찾을 수 있어야 한다.
- 수빈이가 모든 동생을 찾기 위해서 수빈이 현재 위치와 동생들의 위치의 차를 구한다.
- (수빈 위치 - 동생 위치)의 절댓값들의 최대공약수가 모든 동생을 찾기 위한 d의 최댓값이다.
<코드>
def gcd(a, b):
while b:
mod = b
b = a%b
a = mod
return a
n, s = map(int, input().split())
a = list(map(int, input().split()))
dif = list(set(abs(a[i]-s) for i in range(n)))
d = min(dif)
for i in range(len(dif)):
d = gcd(dif[i], d)
print(d)
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 16940 BFS 스페셜 저지_파이썬 (0) | 2020.11.11 |
---|---|
[알고리즘][Python] 백준(BOJ) 17103 골드바흐 파티션_파이썬 (0) | 2020.11.10 |
[알고리즘][Python] 백준(BOJ) 5635 생일_파이썬 (0) | 2020.11.08 |
[알고리즘][Python] 백준(BOJ) 11557 Yangjojang of The Year_파이썬 (0) | 2020.11.07 |
[알고리즘][Python] 백준(BOJ) 11931 수 정렬하기 4_파이썬 (0) | 2020.11.06 |
Comments