코드
from math import gcd
n = int(input())
num = [int(input()) for _ in range(n)]
rksrur = []
for i in range(n-1):
rksrur.append(num[i+1]-num[i])
maxrksrur = gcd(*rksrur)
cnt = 0
for i in rksrur:
cnt += i//maxrksrur-1
print(cnt)
가로수의 간격 // 최대공약수를 해서 구하는 방법이 아니면 메모리 초과나 시간 초과의 벽에 부딪히게 된다. 나누는 방법을 이용하면 O(N)의 복잡도로 해결할 수 있다.
'백준' 카테고리의 다른 글
[백준] 16398번 행성 연결 파이썬 코드 (1) | 2024.02.03 |
---|---|
[백준] 3273번 두 수의 합 파이썬 코드 (0) | 2024.02.03 |
[백준] 20310번 타노스 파이썬 코드 (0) | 2024.02.01 |
[백준] 10775번 공항 파이썬 코드 (1) | 2024.02.01 |
[백준] 25757번 임스와 함께하는 미니게임 파이썬 코드 (0) | 2024.02.01 |