세 변의 길이를 나타내는 숫자 a, b, c를 입력받아, 이 세 변이 직각삼각형을 이루는지 판별하는 JavaScript 함수를 작성해야 합니다. 함수는 직각삼각형인 경우 true, 그렇지 않은 경우 false를 반환해야 합니다.
직각삼각형이란?
직각삼각형은 세 개의 내각 중 하나가 90도인 삼각형을 말합니다. 그리고 피타고라스 정리에 따르면, 삼각형에서 하나의 각이 90도일 조건은 가장 긴 변(빗변)의 제곱이 나머지 두 변의 제곱의 합과 같다는 것입니다.
대표적인 예로 3, 4, 5를 들 수 있습니다.
3*3 + 4*4 = 9 + 16 = 25 = 5*5
즉, 3² + 4² = 5²가 성립하므로 길이가 3, 4, 5인 세 변은 직각삼각형을 이룹니다.
구현 방법
어떤 변이 빗변인지 미리 알 수 없기 때문에, 세 가지 경우를 모두 검사해야 합니다. 즉, 각 변이 가장 긴 변일 때 나머지 두 변의 제곱합과 일치하는지 확인하고, 세 조건 중 하나라도 참이면 직각삼각형으로 판단합니다.
다음은 이를 구현한 코드입니다.
const side1 = 8;
const side2 = 10;
const side3 = 6;
const isRightTriangle = (a, b, c) => {
// a가 빗변인 경우
const con1 = (a*a) === (b*b) + (c*c);
// b가 빗변인 경우
const con2 = (b*b) === (a*a) + (c*c);
// c가 빗변인 경우
const con3 = (c*c) === (a*a) + (b*b);
return con1 || con2 || con3;
};
console.log(isRightTriangle(side1, side2, side3));실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
true
변의 길이가 8, 10, 6일 때 8² + 6² = 64 + 36 = 100 = 10²이 성립하므로, 이 삼각형은 직각삼각형이며 함수는 true를 반환합니다.
마무리
이처럼 피타고라스 정리를 코드로 옮기면 세 변의 길이만으로 직각삼각형 여부를 손쉽게 판별할 수 있습니다. 다만 실제 프로젝트에서는 부동소수점 오차를 고려하여 Math.abs(a*a - (b*b + c*c)) < Number.EPSILON 같은 방식으로 오차 범위를 허용하는 것이 더 안전합니다.