https://www.acmicpc.net/problem/2485
2485번: 가로수
첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가
www.acmicpc.net
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class java_2485 {
static int euclid(int a, int b) {
while (b != 0) {
int temp = a;
a = b;
b = temp % b;
}
return a;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
// 나무 데이터 저장
int trees[] = new int[N];
for (int i = 0; i < N; i++) {
trees[i] = Integer.parseInt(br.readLine());
if (i >= 1) {
trees[i] = trees[i] - trees[0];
}
}
// 최대 공약수 구하기
// -> (trees[N-1] / 최대 공약수) - N + 1
int gcd = trees[1];
for (int i = 1; i < N; i++) {
gcd = euclid(gcd, trees[i]);
}
int result = (int) (trees[N - 1] / gcd) - N + 1;
System.out.println(result);
br.close();
bw.close();
}
}
'Coding Test > BOJ' 카테고리의 다른 글
[BOJ/JAVA] 2981번: 검문 (0) | 2022.08.21 |
---|---|
[BOJ/JAVA] 10166번: 관중석 (0) | 2022.08.21 |
[BOJ/JAVA] 9935번: 문자열 폭발 (0) | 2022.08.21 |
[BOJ/JAVA] 5052번: 전화번호 목록 (0) | 2022.08.21 |
[BOJ/JAVA] 1474번: 밑 줄 (0) | 2022.08.21 |