728x90
반응형
https://www.acmicpc.net/problem/2485
문제 해결
- 각 나무 사이의 거리를 모아서 최대 공약수를 구한다.
- 최대 공약수를 나무와 나무 사이 거리로 생각하여 나무에서 최대 공약수만큼 떨어진 곳에 나무가 없으면 나무를 세우면 된다.
CODE
import sys
input = sys.stdin.readline
import math
n = int(input())
a = int(input()) # 첫 번째 나무 좌표
A = []
for i in range(n-1):
num = int(input())
A.append(num-a) # 나무와 나무 사이 거리
a = num
g = A[0] # 첫 번째 나무와 두 번째 나무 사이 거리
for j in range(1,len(A)):
g = math.gcd(g, A[j])
result = 0
for each in A:
result += each//g -1
print(result)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 18428 감시 피하기 (0) | 2023.04.04 |
---|---|
[python] 백준 17136 색종이 붙이기 (0) | 2023.04.03 |
[python] 백준 16637 괄호 추가하기 (0) | 2023.03.28 |
[python] 백준 2661 좋은수열 (0) | 2023.03.27 |
[python] 백준 9205 맥주 마시면서 걸어가기 (0) | 2023.03.26 |
댓글