본문 바로가기
Develop/알고리즘

[백준/Python] Bronze I #17177 내접사각형 만들기

by favorcat 2023. 8. 30.
반응형
 

17177번: 내접사각형 만들기

첫 번째 줄에 세 변의 길이를 나타내는 세 정수 a, b, c가 주어진다. (1 ≤ a, b, c ≤ 100) 세 선분은 내림차순으로 주어진다.

www.acmicpc.net

문제

어떤 사각형의 네 꼭짓점이 원과 접할 때 이 사각형이 원에 내접한다고 한다. 세 선분의 길이가 주어지고 그중 가장 긴 선분의 길이가 내접할 원의 지름과 같을 때, 나머지 한 선분의 길이를 구하여라.

입력

첫 번째 줄에 세 변의 길이를 나타내는 세 정수 a, b, c가 주어진다. (1 ≤ a, b, c ≤ 100) 세 선분은 내림차순으로 주어진다.

출력

첫째 줄에 나머지 한 변의 길이를 출력한다. 원에 내접하는 사각형을 만들 수 없다면 -1을 출력한다. 단, 정답은 정수로 나오는 케이스만 주어진다. 

풀이

import math
a, b, c = map(int,input().split())
r1 = a*a - b*b
r2 = a*a - c*c
d = int((math.sqrt(r1*r2) - b*c) / a)
if d > 0: print(d)
else: print(-1)

톨레미의 정리에 따르면 다음과 같이 원에 내접한 사각형은 마주 보는 두 쌍의 변의 곱의 합이 두 대각선의 곱과 같다.

반응형

Comment