백준 2485 - 가로수 (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/2485
풀이
가로수들이 일정하지 않은 간격으로 심어져 있다. 이 간격을 모두 같게 만들기 위해 새로운 나무들을 더 심어야한다.
- 현재 심어진 가로수의 좌표가 주어진다.
- 추가로 심어야 하는 나무의 수를 구하는 문제이다.
풀이과정은 다음과 같다.
- 각 인접한 나무 사이의 간격을 구한다.
- 3 - 1 = 2, 7 - 3 = 4, 13 - 7 = 6
- 이 간격들의 최대공약수를 구한다.
- 간격을 모두 gcd로 만들면 최소한의 나무로 균등 간격이 된다.
- 전체 거리에서 gcd 간격으로 나무를 심었을 때의 전체 나무를 개산한다.
- 기존에 있던 나무 수를 빼면, 추가로 심어야 할 나무 수가 나온다.
코드
# 백준 2485 - 가로수
# 분류 : 수학
N = int(input())
X = [0] * N
for i in range(N) :
X[i] = int(input())
def gcd(a, b) :
if a < b :
a, b = b, a
if b == 0 :
return a
else :
return gcd(b, a % b)
d = 0
for i in range(N - 1) :
d = gcd(d, X[i + 1] - X[i])
print((X[-1] - X[0]) // d + 1 - N)
'Programming > 백준' 카테고리의 다른 글
백준 2491 - 수열 (파이썬) (0) | 2025.03.31 |
---|---|
백준 2506 - 점수계산 (파이썬) (0) | 2025.03.30 |
백준 2527 - 직사각형 (파이썬) (0) | 2025.03.28 |
백준 2460 - 지능형 기차 2 (파이썬) (0) | 2025.03.28 |
백준 2526 - 싸이클 (파이썬) (0) | 2025.03.28 |
댓글
이 글 공유하기
다른 글
-
백준 2491 - 수열 (파이썬)
백준 2491 - 수열 (파이썬)
2025.03.31 -
백준 2506 - 점수계산 (파이썬)
백준 2506 - 점수계산 (파이썬)
2025.03.30 -
백준 2527 - 직사각형 (파이썬)
백준 2527 - 직사각형 (파이썬)
2025.03.28 -
백준 2460 - 지능형 기차 2 (파이썬)
백준 2460 - 지능형 기차 2 (파이썬)
2025.03.28