https://www.acmicpc.net/problem/17087
17087번: 숨바꼭질 6
수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이
www.acmicpc.net
코드 :
최대공약수, 유클리드 호제법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int gcd = 0;
int N = Integer.parseInt(st.nextToken());
int S = Integer.parseInt(st.nextToken());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Math.abs(S - (Integer.parseInt(st.nextToken())));
}
gcd = arr[0];
for (int i = 1; i < N; i++) {
gcd = GCD(gcd, arr[i]);
}
System.out.println(gcd);
}
public static int GCD(int num1, int num2){
int r = num1 % num2;
if(r == 0){
return num2;
}
return GCD(num2, r);
}
}
무조건 D 단위로 움직여야 한다는 의미로 D는 최대공약수를 의미한다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1212번 - 8진수 2진수 (Java 8) (0) | 2022.03.17 |
---|---|
백준 1373번 - 2진수 8진수 (Java 8) (0) | 2022.03.16 |
백준 9613번 - GCD합 (Java 8) (0) | 2022.03.16 |
백준 2004번 - 조합 0의 개수 (Java 8) (0) | 2022.03.15 |
백준 1676번 - 팩토리얼 0의 개수 (Java 8) (0) | 2022.03.15 |
댓글