반응형
문제
https://www.acmicpc.net/problem/3036
해결 코드
def gcd(a, b):
if a < b:
a, b = b, a
# a가 크다
while True:
if a % b == 0:
return b
else:
a, b = b, a % b
n = int(input())
data = list(map(int, input().split()))
for i in range(1, n):
tempgcd = gcd(data[0], data[i])
print('%s/%s' % (data[0]//tempgcd, data[i]//tempgcd))
유클리드 호제법을 사용하여 첫 번째 링과 n 번째 링의 최대공약수를 구하고,
최대공약수로 각 링을 나누면 된다.
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[백준 / Python] 1302번 베스트셀러 (0) | 2023.09.29 |
---|---|
[백준 / Python] 15651번 N과 M (3) (0) | 2023.09.17 |
[백준 / Python] 28293번 자릿수 (0) | 2023.08.08 |
[백준 / Python] 28353번 고양이 카페 (2) | 2023.07.22 |
[백준 / Python] 14912번 숫자 빈도수 (0) | 2023.07.17 |
댓글