간단한 수학 문제이나, 만약 나누어떨어지거나, 나누어떨어지지 않을 경우를 생각하여 풀어야 했다.
import sys
N = int(sys.stdin.readline())
nums = list(map(int, sys.stdin.readline().split()))
for i in nums[1:]:
a, b = nums[0], i
c = 0
for j in reversed(range(1, min(nums[0], i)+1)):
if a%j == 0 and b%j == 0:
c = j
break
else:
c = 1
print(str(int(nums[0]/c)) + '/' + str(int(i/c)))
여기서 나누어 떨어지는 경우를 위해 두 숫자들간의 최대공약수를 찾아주고, 이를 나누어준 값을 출력하는 방식으로 진행했다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제풀이: 11051번> 파이썬 - 이항 계수 2 (0) | 2020.12.27 |
---|---|
<백준 문제풀이: 11050번> 파이썬 - 이항 계수 1 (0) | 2020.12.27 |
<백준 문제풀이: 10773번> 파이썬 - 제로 (0) | 2020.12.27 |
<백준 문제풀이: 10828번> 파이썬 - 스택 (0) | 2020.12.27 |
<백준 문제풀이: 2609번> 파이썬 - [수학3] 최대공약수와 최소공배수 (0) | 2020.12.24 |