문제 출처: https://www.acmicpc.net/problem/3053
Sol)
#include <stdio.h>
#define _USE_MATH_DEFINES //math 헤더파일에 정의돼 있는 파이값을 사용하기 위해 필요.
#include <math.h>
int main(){
double radius;
scanf("%lf", &radius);
printf("%lf\n", M_PI * radius * radius);
printf("%lf\n", 2 * radius * radius);
return 0;
}
- 풀이 방향
문제의 설명을 읽어보니 유클리드 기하학으로 계산한 원은 우리가 평소에 알고 있는 바로 그 평범한 원이다. 그렇다면 이 넓이는 Pi * radius^2 으로 구하면 되겠다. 결국 택시 기하학으로 원의 넓이를 구할 수만 있다면 간단하게 풀 수 있는 문제가 되겠다.
- 풀이
택시 기하학에서 정의하는 원은 유클리드 기하학에서의 원과 같이 "평면상의 어떤 점에서 거리가 일정한 점들의 집합" 이다. 택시 기하학에서의 거리란 x좌표의 차의 절댓값 + y좌표의 차의 절댓값이다. 따라서 원의 중심을 (0, 0), 반지름의 길이를 1로 하는 택시기하학에서의 원은 다음과 같은 모양이 된다.
따라서 택시기하학에서의 원은 한 변이 √2radius 인 정사각형이 된다. 이 정사각형의 넓이는 2 * radius^2 과 같다.
- 문제에 대한 사견
유클리드 기하학이 아닌 다른 기하학에서는 도형이나 길이등에 관해 다른 정의를 가지고 있다는 사실이 정말 흥미로웠다. 수학을 잘 하면 세상을 여러 흥미로운 관점으로 바라볼 수 있을 것 같다.
'BOJ' 카테고리의 다른 글
백준 1358번 하키 [C언어] (0) | 2022.08.30 |
---|---|
백준 1934번 최소공배수 [C언어] (0) | 2022.08.29 |
백준 2420번 사파리 월드 [C언어] (0) | 2022.08.28 |
백준 3009번 네 번째 점 [C언어] (0) | 2022.08.25 |
백준 10163번 색종이 [C언어] (0) | 2022.08.22 |