프로그래밍/백준

[알고리즘] 백준 16479 파이썬 - 컵라면 측정하기

매 석 2023. 3. 8. 23:24
반응형

 

16479번: 컵라면 측정하기

첫째 줄에 K의 값이 주어진다. 둘째 줄에는 D1과 D2의 값이 사이에 공백을 한 개 두고 차례대로 주어진다. 단, K, D1, D2의 값은 양의 정수이다.

www.acmicpc.net

문제

컵라면은 두 개의 밑면이 서로 평행하며, 원 모양인 원뿔대이다. 따라서 컵라면을 옆에서 본 모습은 아래 그림과 같은 등변사다리꼴이다.

위 등변사다리꼴에서 민수가 측정한 컵라면의 윗면의 지름은 D1, 아랫면의 지름은 D2이다. 민수가 아직 측정하지 않은 변의 길이는 K이다. 이때, (컵라면의 높이)2의 값을 알아내는 프로그램을 작성하시오. (단, 컵라면의 높이는 등변사다리꼴에서 평행한 두 변 사이의 거리로 정의한다.)

 

문제풀이

k=int(input())
d1,d2=map(int,input().split())
#01
x,y=max(d1,d2),min(d1,d2)
#02
print(k**2-((x-y)/2)**2)

- #01 : d1,d2 중에 큰 값은 x, 작은 값은 y에 저장한다.

- #02 : 피타고라스의 정리를 이용한다.

           긴 지름에서 작은 지름을 빼면 양쪽에 같은 길이의 선분이 남게된다.

           이를 2로 나누면 한 개의 길이가 나오게 된다. 이 선분의 길이와

           k 값 즉 대각선의 값을 알면 나머지 높이를 피타고라스 정리로 구할 수 있다.

          참고로 x,y와 같으면 직사각형으로 k의 값이 높이가 된다.