Algorithm Test/BaekJoon
BaekJoon 3036 - 링 풀이 (Python)
Seoulsky-field
2022. 3. 7. 20:56
지난 번에 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을 이용해 분수로 표현