지난 번에 GCD 합 문제를 풀면서 Fraction을 이용한 적이 있는데, 해당 library를 이용하면 쉽게 풀 수 있다!
사실, 해당 library 안 써도 쉽게 풀 수 있을 것 같기는 하다..ㅋㅋㅋ
Fraction library는 두 수를 기약 분수 꼴로 나타내 준다.
문제는 기약 분수 꼴로 나타낼 때 완전히 정수로 나눠진다면 분모에 1이 남겨지지 않고 정수로 그대로 출력된다는 점이다.
따라서 완전히 정수로 나눠질 때 분모에 1을 추가해주는 작업을 따로 해주면 된다!
import sys
from fractions import Fraction # 기약 분수로 나타내는 Python Library
input = sys.stdin.readline
N = int(input()) # 링의 개수를 입력
rings = list(map(int, input().strip().split(' '))) # 링의 반지름들을 입력
for i in range(1, N): # 첫 번째 링을 제외한 나머지 링들에 대해서 진행
if rings[0] % rings[i] == 0: # 두 수가 정수꼴로 나눠지면
print(str(int(rings[0]/rings[i])) + '/' + '1') # 분모가 1인 분수꼴로 표현
else: # 두 수가 정수꼴로 나눠지지 않는다면
print(Fraction(rings[0], rings[i])) # Fraction을 이용해 분수로 표현
'Algorithm Test > BaekJoon' 카테고리의 다른 글
BaekJoon 10809 - 알파벳 찾기 (Python) (0) | 2022.03.15 |
---|---|
BaekJoon 10808 - 알파벳 개수 (Python) (0) | 2022.03.11 |
BaekJoon 14225 - 부분수열의 합 (Python) (0) | 2022.03.06 |
BaekJoon 9613 - GCD 합 (Python) (0) | 2022.03.06 |
BaekJoon 10799 - 쇠막대기 (Python) (0) | 2022.03.04 |