홍우진의 개발 일기장

[백준] 2485번: 가로수/ 파이썬 본문

알고리즘/백준

[백준] 2485번: 가로수/ 파이썬

홍우진 2022. 9. 13. 22:51
728x90
반응형

문제 링크


https://www.acmicpc.net/problem/2485

 

2485번: 가로수

첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가

www.acmicpc.net

풀이 코드


import sys
from math import gcd

N = int(sys.stdin.readline())

a = int(sys.stdin.readline())

arr = []

for i in range(N-1):
    num = int(sys.stdin.readline())
    arr.append(num - a)
    a = num

g = arr[0]
for j in range(1, len(arr)):
    g = gcd(g, arr[j])

result = 0
for each in arr:
    result += each // g - 1
print(result)

코드 해석


가로수들 사이의 값을 저장할 배열을 만든 뒤 가로수들 사이의 간격 저장한다.
arr에 들어있는 모든 수들의 최대공약수 찾은 후 둘 사이에 심을 가로수 개수를 찾는다.

개수 = 간격 // 최대공약수 - 1

728x90
반응형
Comments