BOJ

백준 3053번 택시 기하학 [C언어]

Sloth Coder 2022. 8. 29. 18:39

문제 출처: https://www.acmicpc.net/problem/3053

 

3053번: 택시 기하학

첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다.

www.acmicpc.net

 

 

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로 하는 택시기하학에서의 원은 다음과 같은 모양이 된다.

반지름이 1이고 중심이 (0, 0)인 택시기하학의 원

따라서 택시기하학에서의 원은 한 변이 √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