728x90
https://www.acmicpc.net/problem/2485
1) 각 간격의 최대공약수를 찾는다!
2) 총 거리에서 최대공약수로 계산했을때 총 몇개의 가로수가 들어가는지 계산하고
현재 있는 가로수의 수를 뺀다
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
public class Main {
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());
ArrayList<Integer> arr = new ArrayList<>();
ArrayList<Integer> map = new ArrayList<>();
int num1 = Integer.parseInt(br.readLine());
map.add(num1);
for (int i = 0; i < n - 1; i++) {
int num2 = Integer.parseInt(br.readLine());
arr.add(num2 - num1);
map.add(num2);
num1 = num2;
}
int max = arr.get(0);
int dis1 = arr.get(0);
for (int i = 1; i < arr.size(); i++) {
int dis2 = arr.get(i);
for (int j = 1; j <= dis1; j++) {
if (dis1 % j == 0 && dis2 % j == 0) {
max = j;
}
}
dis1 = max;
}
System.out.println((map.get(n-1)-map.get(0))/max-(n-1));
}
}
'Java' 카테고리의 다른 글
[백준 6588] 골드바흐의 추측 (JAVA) (0) | 2023.03.25 |
---|---|
[백준 15711] 환상의 짝꿍 (JAVA) (0) | 2023.03.24 |
[백준 2206] 벽 부수고 이동하기 (JAVA) (0) | 2023.03.23 |
[백준 2583] 영역 구하기 (JAVA) (0) | 2023.03.23 |
[백준 13305] 주유소 (JAVA) (0) | 2023.03.22 |