직각삼각형의 두 변 AB와 BC가 주어져 있다고 가정해 보겠습니다. 빗변(AC)의 중점을 M이라 할 때, 우리가 구하고자 하는 것은 M과 밑변 BC 사이의 각도입니다.

예를 들어 ab = 6, bc = 4가 입력으로 주어진다면 결과는 56.309932474020215가 됩니다. 그 이유는 ab/bc의 아크탄젠트(arctan) 값이 약 0.9828 라디안인데, 이를 도(degree) 단위로 변환하면 약 56.31도가 되기 때문입니다.
풀이 접근 방법
이 문제는 삼각함수의 기본 성질만 활용하면 매우 간단하게 해결할 수 있습니다.
- ans := arctan(ab / bc)를 계산합니다.
- 계산된 라디안 값을 도 단위로 변환한 뒤 반환합니다.
직각삼각형에서 한 변에 대한 다른 변의 비율이 곧 탄젠트 값이므로, 역탄젠트(arctan)를 취하면 원하는 각도를 바로 얻을 수 있습니다.
예제 코드
from math import atan, pi
def solve(ab, bc):
def deg(rad):
return 180/pi * rad
ans = deg(atan(ab/bc))
return ans
ab = 6
bc = 4
print(solve(ab, bc))입력
6, 4
출력
56.309932474020215
더 간결한 구현 방법
사실 파이썬의 math 모듈에는 라디안을 도로 변환해 주는 math.degrees() 함수가 이미 내장되어 있습니다. 따라서 변환 함수를 직접 작성하지 않고도 다음과 같이 한 줄로 해결할 수 있습니다.
import math
def solve(ab, bc):
return math.degrees(math.atan(ab/bc))
print(solve(6, 4)) # 56.309932474020215두 방법 모두 동일한 결과를 반환하지만, 실무에서는 표준 라이브러리를 활용하는 두 번째 방식이 코드가 더 짧고 가독성이 좋아 권장됩니다.