Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 삼각형의 세 변을 이용해 면적 계산하기 — 헤론의 공식 활용법

문제 상황

삼각형의 세 변의 길이를 입력받아 헤론의 공식(Heron's formula)을 활용해 넓이를 계산하는 JavaScript 함수를 작성해야 합니다.

헤론의 공식은 삼각형의 높이나 각도 정보 없이 오직 세 변의 길이만으로 면적을 구할 수 있는 고전적인 기하학 공식입니다. 먼저 세 변의 길이의 합을 2로 나눈 값인 반둘레(semi-perimeter) s를 구한 뒤, 다음 식에 대입하면 됩니다.

면적 = √(s × (s - a) × (s - b) × (s - c))

예제 코드

다음은 위 공식을 JavaScript로 구현한 코드입니다.

const s1 = 10;
const s2 = 8;
const s3 = 7;

const findArea = (s1, s2, s3) => {
    const arr = [];
    const arguments = [s1, s2, s3];
    for(let i = 0; i < arguments.length; i++){
        arr.push(arguments[i]);
    };
    // 반둘레(s) 계산
    let s = (arr[0] + arr[1] + arr[2]) / 2;
    // 헤론의 공식 적용
    return Math.sqrt(s * (s - arr[0]) * (s - arr[1]) * (s - arr[2]));
};

console.log(findArea(s1, s2, s3));

실행 결과

27.810744326608734

코드 설명

함수의 동작 과정을 단계별로 살펴보면 다음과 같습니다.

1. 입력받은 세 변의 길이(s1, s2, s3)를 배열 arr에 순서대로 저장합니다.
2. 세 변의 합을 2로 나누어 반둘레 s를 계산합니다. 예제에서는 (10 + 8 + 7) / 2 = 12.5가 됩니다.
3. Math.sqrt() 메서드를 사용해 √(s × (s-a) × (s-b) × (s-c)) 값을 반환합니다.

따라서 변의 길이가 각각 10, 8, 7인 삼각형의 면적은 약 27.81로 계산됩니다.

참고로, 실무에서는 arguments라는 변수명보다는 sides처럼 더 명확한 이름을 사용하고, 배열 생성 시 for문 대신 [s1, s2, s3]를 직접 활용하는 것이 코드 가독성 측면에서 더 권장됩니다.