타원의 장축 길이가 2a, 단축 길이가 2b라고 가정해 봅시다. 이때 해당 타원에 내접할 수 있는 가장 큰 원의 면적을 구해야 합니다.
예를 들어 a = 5이고 b = 3이라면, 구해야 하는 원의 면적은 28.2734가 됩니다.

핵심 아이디어
위 그림에서 확인할 수 있듯이, 타원에 내접하는 최대 면적의 원은 그 반지름이 곧 타원의 단축(semi-minor axis) 'b'와 같습니다. 장축 방향으로는 더 크게 확장될 여유가 있지만, 단축 방향으로는 b보다 커질 수 없기 때문입니다.
따라서 원의 면적 공식은 다음과 같습니다.
A = π × b × b
C++ 구현 예제
#include<iostream>
using namespace std;
double inscribedCircleArea(double b) {
double area = 3.1415 * b * b;
return area;
}
int main() {
double a = 10, b = 8;
cout << "Area of the circle: " << inscribedCircleArea(b);
}실행 결과
Area of the circle: 201.056
코드 설명
이 알고리즘은 매우 간단합니다. 함수 inscribedCircleArea()는 단축의 길이 b만을 매개변수로 받아 원의 면적 공식인 πr²을 적용합니다. a = 10, b = 8인 경우, 반지름이 8인 원의 면적은 3.1415 × 8 × 8 = 201.056으로 계산됩니다.
시간 복잡도는 O(1)로, 상수 시간 안에 결과를 얻을 수 있습니다.