-

crossed ladders 본문

알고리즘

crossed ladders

lingi04 2016. 12. 15. 12:09


밑변을 공유하는 두 개의 직각삼각형의 빗변 a, b와, 빗변이 교차하는 지점의 높이 h가 주어졌을 때

밑변의 길이 w를 구하고 싶다?


A = Math.sqrt(a*a-w*w);

B = Math.sqrt(b*b-w*w);

이라고 할 때


h = (A*B)/(A+B)를 만족하는 w를 찾으면 된다!


=>다른 풀이...

두 삼각형을 좌표평면으로 가져왔을 때,

빗변을 직선의 방정식으로 나타내면

빗변 b는

    

빗변 a는

   

이렇게 나타낼 수 있다.


여기서 적절한 x값(binary search로 찾아갈 수 있다.)을 통해 w를 구할 수 있음


'알고리즘' 카테고리의 다른 글

KMP 알고리즘  (0) 2017.01.02
펜윅트리 :: 백준 :: LRH 식물 :: 2934  (0) 2016.12.29
Brute Force :: 백준 :: 일곱 난쟁이 :: 2309  (0) 2016.12.10
Comments