백준 문제풀이

17087.숨바꼭질 6 (자바, Java)

뮤츠 2022. 11. 22. 22:10

수빈이와 동생들과의 거리간의 최대공약수를 찾으면 된다. 모든 동생들과 만날 수 있어야하고 (=공약수여야하고), 초당 이동거리가 최대여야한다 (=공약수 중 최댓값, 즉 최대공약수여야 한다.)

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int n = Integer.parseInt(st.nextToken());
		int s = Integer.parseInt(st.nextToken());
		int[] d = new int[n];
		st = new StringTokenizer(br.readLine(), " ");
		for (int i=0; i<n; i++) {			
			d[i] = Math.abs(s-Integer.parseInt(st.nextToken()));
		}
		
		Arrays.sort(d);
		int ans = d[0];
		for (int i=1; i<n; i++) {
			ans = gcd(ans, d[i]);
		}
		System.out.println(ans);
	}		

	
	static int gcd(int minor, int major) {
		while (major%minor!=0) {
			int temp = minor;
			minor = major%minor;
			major = temp;
		}
		return minor;
	}

}

'백준 문제풀이' 카테고리의 다른 글

1212. 8진수 2진수 (자바, Java)  (0) 2022.11.22
1373. 2진수 8진수 (자바, Java)  (0) 2022.11.22
9613. GCD 합 (자바, Java)  (0) 2022.11.22
11656. 접미사 배열 (자바, Java)  (0) 2022.11.20
10824. 네 수 (Java, 자바)  (0) 2022.11.20