Hayden's Archive
[알고리즘] 백준 - 17087번 : 숨바꼭질 6 본문
알고리즘 문제 출처 : https://www.acmicpc.net/problem/17087
내가 작성한 코드
수빈이와 동생들과의 거리의 절대값들을 각각 구한 뒤 그 값들의 최대공약수를 구해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static long gcd(long a, long b) {
if(b == 0) {
return a;
}else {
return gcd(b, a%b);
}
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] ns = br.readLine().split(" ");
String[] input = br.readLine().split(" ");
int n = Integer.parseInt(ns[0]);
long s = Long.parseLong(ns[1]);
long[] dArr = new long[n];
for(int i=0; i<n; i++) {
long difference = s-Long.parseLong(input[i]);
dArr[i] = Math.abs(difference);
}
long gcd = dArr[0];
if(dArr.length>1) {
for(int i=1; i<n; i++) {
gcd = gcd(gcd, dArr[i]);
}
}
System.out.println(gcd);
}
}