백준 2485번
코드
N=int(input())
arr=[]
tree=[]
cnt=0
for i in range(N):
arr.append(int(input()))
for i in range(N-1):
tree.append(arr[i+1]-arr[i])
tree.sort()
def gcd(a,b):
while True:
temp=a%b
if temp==0:
return b
break
a=b
b=temp
num=gcd(tree[0],tree[1])
for i in range(1,len(tree)):
num=gcd(num,tree[i])
for i in range(len(arr)-1):
cnt+=(arr[i+1]-arr[i])//num-1
print(cnt)
정리
배열을 입력받아서 각 배열 사이의 수의 최대공약수를 구해서 해결하면 되는 문제이다. 처음에 해결 방법을 못 찾아서 좀 헤매었는데 접근법을 알면 쉽게 해결 가능한 문제였다.
Author And Source
이 문제에 관하여(백준 2485번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eunyoung23/백준-2485번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)