이 문제에서는 정육각형의 한 변의 길이를 나타내는 정수 n이 주어지며, 우리의 목표는 육각형의 대각선 길이를 구하는 것입니다.
문제 설명
정육각형의 한 변의 길이가 주어졌을 때, 이 육각형의 대각선 길이를 계산해야 합니다.
예제로 문제 이해하기
- 입력: a = 7
- 출력: 12.11
해결 접근 방법
정육각형의 대각선 길이는 다음과 같은 수학 공식으로 간단히 구할 수 있습니다.
대각선 길이 = 1.73 × a
공식 유도 과정
한 변의 길이가 a인 정육각형을 생각해 봅시다.
정육각형은 중심을 기준으로 6개의 정삼각형으로 나눌 수 있으며, 대각선과 한 변 사이의 각도는 60°입니다.
대각선 길이를 d라고 할 때, 삼각함수를 이용하면 다음 관계가 성립합니다.
(d/2) / a = sin 60°
sin 60° = d / (2 × a)
0.866 = d / (2 × a)
d = 0.866 × 2 × a
d = 1.73 × a
즉, 정육각형의 대각선 길이는 한 변의 길이에 약 1.73(√3의 근삿값)을 곱한 값과 같습니다.
C++ 구현 예제
위 해결 방법을 C++ 코드로 구현하면 다음과 같습니다.
#include <iostream>
using namespace std;
int main() {
float a = 12;
float d = 1.73 * a;
cout << "대각선의 길이는 " << d;
return 0;
}
실행 결과
대각선의 길이는 20.76
마무리
정육각형의 대각선 길이는 복잡한 계산 없이 1.73 × 변의 길이라는 간단한 공식으로 구할 수 있습니다. 이는 정육각형 내부의 기하학적 성질, 즉 대각선과 변 사이의 각이 60°라는 사실에서 비롯된 결과입니다. 시간 복잡도는 O(1)로, 어떤 입력값이든 상수 시간에 즉시 계산할 수 있다는 장점이 있습니다.