๋ฐ์ํ
๐ค๋ฌธ์ ํด๊ฒฐ
- ์ํ - ์ ํด๋ฆฌ๋ํธ์ ๋ฒ GCD
- ๋๋ฌด๋ค์ ๊ฐ๊ฒฉ์ ๊ตฌํ๋ค.
- ๊ฐ๊ฒฉ๋ค์ ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค.
- ๊ฐ๊ฒฉ์ ์ต๋๊ณต์ฝ์๋ก ๋๋๊ณ 1์ ๋นผ์ฃผ๋ฉด ๊ฐ๊ฐ์ ๊ฐ๊ฒฉ ์ฌ์ด์ ์ฌ์ ๋๋ฌด์ ์ซ์๊ฐ ๋์จ๋ค.
๐ป์์ค ์ฝ๋
import sys
def gcd_func(a, b):
while b != 0:
a, b = b, a % b
return a
input = sys.stdin.readline
N = int(input())
trees = [int(input()) for _ in range(N)]
gaps = []
for i in range(1, N): # ๊ฐ๋ก์์ ๊ฐ๊ฒฉ
gaps.append(trees[i] - trees[i - 1])
gaps_set = list(set(gaps)) # ๊ฐ๊ฒฉ ์ค๋ณต ์ ๊ฑฐ
gcd = gaps_set[0]
for i in range(1, len(gaps_set)): # ๊ฐ๊ฒฉ๋ค์ ์ต๋๊ณต์ฝ์
gcd = gcd_func(gcd, gaps_set[i])
answer_tree_cnt = 0
for gap in gaps: # ๊ฐ๊ฒฉ์ ์ต๋๊ณต์ฝ์๋ก ๋๋๊ณ 1์ ๋นผ์ฃผ๋ฉด ์ฌ์ ๋๋ฌด ์ซ์
answer_tree_cnt += gap // gcd - 1
print(answer_tree_cnt)
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋ฐ์ํ
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 1018. ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2021.09.22 |
---|---|
[python] ํ๋ก๊ทธ๋๋จธ์ค - ์ํด๋ฆฌ์ฑ๋ฆฐ์ง 7์ฃผ์ฐจ (0) | 2021.09.17 |
[python] ๋ฐฑ์ค - 21608. ์์ด ์ด๋ฑํ๊ต (0) | 2021.09.15 |
[python] ๋ฐฑ์ค - 1347. ๋ฏธ๋ก ๋ง๋ค๊ธฐ (0) | 2021.09.14 |
[python] ๋ฐฑ์ค - 12764. ์ธ์ง๋ฐฉ์ ๊ฐ ์คํ (0) | 2021.09.11 |