길이가 각각 l, m, n인 세 개의 선분이 있다고 가정해 봅시다. 이 세 선분이 삼각형을 이룰 수 있는 조건은 단 하나, 임의의 두 변의 길이 합이 나머지 한 변보다 커야 한다는 것입니다.
예를 들어, 세 선분의 길이가 각각 4, 9, 3이라면 삼각형을 만들 수 없습니다. 그 이유는 4 + 3 = 7이 9보다 작기 때문입니다.
문제 정의
우리는 세 개의 숫자(세 변의 길이)를 인자로 받아, 해당 값들이 삼각형을 형성할 수 있는지 여부를 판별하는 JavaScript 함수를 작성해야 합니다.
삼각형 성립 조건
삼각형 부등식(Triangle Inequality)에 따르면, 다음 세 가지 조건을 모두 만족해야 유효한 삼각형이 됩니다.
- a + b > c
- b + c > a
- c + a > b
코드 구현
다음은 위 조건을 구현한 JavaScript 코드입니다.
const a = 9, b = 5, c = 3;
const isValidTriangle = (a = 1, b = 1, c = 1) => {
// 변의 길이가 0 또는 falsy 값인 경우 즉시 false 반환
if (!a || !b || !c) {
return false;
}
// 삼각형 부등식 세 가지 조건 검사
const con1 = a + b > c;
const con2 = b + c > a;
const con3 = c + a > b;
// 세 조건을 모두 만족해야 true 반환
return con1 && con2 && con3;
};
console.log(isValidTriangle(a, b, c));실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
false
코드 설명
함수는 먼저 세 변 중 하나라도 0이거나 유효하지 않은 값(falsy)인 경우 false를 반환하여 잘못된 입력을 걸러냅니다. 이후 삼각형 부등식의 세 가지 조건을 각각 변수에 저장하고, 논리 AND(&&) 연산자로 모든 조건을 동시에 검사합니다.
예제에서 사용된 값 9, 5, 3의 경우 5 + 3 = 8이 9보다 작으므로 두 번째 조건(b + c > a)을 만족하지 못하고, 따라서 최종 결과는 false가 됩니다.