문제
톰은 마트에서 치즈 1kg 을 사서 집으로 돌아왔습니다.
그런데 톰이 한눈을 판 사이 제리가 와서 A/B kg 만큼 훔쳐갔습니다.
제리가 치즈를 훔쳐 간 후 톰이 가지고 있는 치즈의 무게는 얼마인가요?
입력
첫 번째 줄에 두 정수 A, B (1 ≤ A < B ≤ 9) 가 주어집니다.
A와 B는 서로소임이 보장됩니다.
출력
정답을 기약분수로 표현했을 때 P/Q kg 이라면 첫 번째 줄에 P와 Q를 공백을 사이에 두고 출력합니다.
예제 입력 1
2 7
예제 출력 1
5 7
예제 입력 2
5 8
예제 출력 2
3 8
풀이
input = __import__('sys').stdin.readline
a, b = map(int, input().split())
a = b - a
print(a, b)
A/B가 기약분수임이 보장되므로 분모는 그대로 b, 분자는 b-a로 하여 출력합니다.
출력 조건 중 출력하는 P와 Q가 서로소, 즉 P/Q가 기약분수여야 한다는 내용이 있습니다. 그런데 코드에는 기약분수를 표현하는 부분 없이 분자를 바로 갱신해서 출력했습니다. 이는 \( 1 - \frac {A}{B} \)가 기약분수가 됨을 상정합니다. 왜 그럴까요?
\( 1 - \frac {A}{B} \), 즉 \( \frac {B-A}{B} \)가 기약분수가 아니라고 가정합시다.
\( B \)를 \(k(B-A)\)라고 하면 (k는 임의의 자연수)
$$ B = k(B-A) $$
$$ kA = (k-1)B $$
$$ A = \frac {k-1}{k} B $$
\( \frac {A}{B} \)에 대입해서 정리하면 \( \frac {(k-1)B}{kB} \)
\(B\)로 분자 분모가 나누어지므로 \( \frac {A}{B} \)가 기약분수라는 가정에 모순이 됩니다.
따라서 \( 1 - \frac {A}{B} \), 즉 \( \frac {B-A}{B} \)은 기약분수 입니다.
'Koala - 8기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/c++] 11721. 열 개씩 끊어 출력하기 (0) | 2022.09.18 |
---|---|
[백준/Python] 5597번: 과제 안 내신 분..? (0) | 2022.09.18 |
[C++] 백준 10173번: 니모를 찾아서 (0) | 2022.09.18 |
[백준/python] 2908번 상수 (0) | 2022.09.17 |
[백준/Python] 10430 - 나머지 (0) | 2022.09.11 |