Koala - 8기/기초 알고리즘 스터디

[백준/Python] 16430 -제리와 톰

StabAn 2022. 9. 18. 22:03
 

16430번: 제리와 톰

첫 번째 줄에 두 정수 A, B (1 ≤ A < B ≤ 9) 가 주어집니다.  A와 B는 서로소임이 보장됩니다.

www.acmicpc.net

문제

톰은 마트에서 치즈 1kg 을 사서 집으로 돌아왔습니다.

그런데 톰이 한눈을 판 사이 제리가 와서 A/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} \)은 기약분수 입니다.