Skip to content

2485번 가로수길 #4

@Sam1000won

Description

@Sam1000won

해결 방법

문제에서 해당되는 가로수길의 가로수를 심는 것은 입력받은 숫자들의 최대 공약수를 찾아서 각 간격을 저장하고 값에서 -1을 하여서 값을 맞춤

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

# arr에 들어있는 모든 수들의 최대공약수 찾기
g = arr[0]
for j in range(1, len(arr)):
    g = gcd(g, arr[j])

# 둘 사이에 심을 가로수 개수: 간격 // 최대공약수 - 1
result = 0
for each in arr:
    result += each // g - 1
print(result)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions