[단계별로 풀어보기][Python 3] 정수론 및 조합론 - 링 (3036)
2022. 5. 3. 18:41ㆍ공부/알고리즘
3036번: 링
출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다.
www.acmicpc.net
위의 문제는 문제 자체의 알고리즘은 쉬우나 기약분수를 이용해야 하는 문제다.
수식 도출
각 원의 둘레는 다음과 같은 식을 가진다.
따라서 다음과 같은 식이 도출된다.
풀이
import fractions
n = int(input())
rings = list(map(int, input().split()))
R = [fractions.Fraction(rings[0], rings[i]) for i in range(1, n)]
for i in R:
print(f"{i.numerator}/{i.denominator}")
여기서 기약분수를 이용하기 위해 fractions 모듈을 사용했다.
fractions.Friction() 메소드는 fraction() 객체를 반환한다.
여기서 분자와 분모를 도출하려면 다음의 메소드를 사용하면 된다.
'공부 > 알고리즘' 카테고리의 다른 글
[단계별로 풀어보기] 정수론 및 조합론 - 조합 0의 개수 (2004) (0) | 2022.05.08 |
---|---|
[단계별로 풀어보기][Python 3] 정수론 및 조합론 - 패션왕 신해빈(9375) (0) | 2022.05.03 |
[단계별로 풀어보기][Python 3] 정수론 및 조합론 - 검문(2981) (0) | 2022.05.03 |
[단계별로 풀어보기][python3] 정수론 및 조합론 - 최대 공약수 최소 공배수 (0) | 2022.05.03 |
[단계별로 풀어보기][python 3] 정렬 - 좌표 정렬하기 2 (11651) (0) | 2022.04.30 |