[BOJ][⚪2][백준#17087] 숨바꼭질 6
작성:    
업데이트:
카테고리: BOJ Silver II
태그: BOJ, BOJ Silver, PS, Python
문제 출처
문제
수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, …, AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이동할 수 있다. 수빈이의 위치가 동생이 있는 위치와 같으면, 동생을 찾았다고 한다. 모든 동생을 찾기위해 D의 값을 정하려고 한다. 가능한 D의 최댓값을 구해보자.
입력
첫째 줄에 N(1 ≤ N ≤ 105)과 S(1 ≤ S ≤ 109)가 주어진다. 둘째 줄에 동생의 위치 Ai(1 ≤ Ai ≤ 109)가 주어진다. 동생의 위치는 모두 다르며, 수빈이의 위치와 같지 않다.
출력
가능한 D값의 최댓값을 출력한다.
예제
예제 1
입력
3 3
1 7 11
출력
2
예제 2
입력
3 81
33 105 57
출력
24
예제 3
입력
1 1
1000000000
출력
999999999
My Sol
from math import gcd
N, S = map(int, input().split())
arr = list(map(lambda x: (abs(int(x)-S)), input().split()))
print(gcd(*arr))
현재 위치 S를 기준으로 각 위치와의 거리를 arr에 저장하고, 이 숫자들의 최대공약수를 라이브러리를 사용하여 계산해 출력한다.
결과
맞았습니다!!
댓글남기기