본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 3053번: 택시 기하학 C언어

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

 

3053번: 택시 기하학

문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합

www.acmicpc.net

1. 코드

#include <stdio.h>
#define PI 3.14159265359
int main(void)
{
    int r;
    double result1, result2;
    
    scanf("%d", &r);
    result1 = (double)r * r * PI;    //유클리드 기하학
    result2 = (double)r * r * 2;     //택시 기하학
    
    printf("%.6lf\n%.6lf", result1, result2);
    return 0;
}

2. 문제 해결 방식

우선 문제를 읽어보면 이러한 말이 나온다.

반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오.

유클리드 기하학이라고 한다면 우리가 초등학생 때부터 고등학생 때까지 배운 도형에 관한 내용이라고 한다. 유클리드 기하학에서의 원은 한 점을 기준으로 같은 길이를 떨어진 점들의 집합이다. 그렇다면 원의 모양은 이런 식으로 나온다.

 

유클리드 기하학에서의 원

 

유클리드 기하학에서의 원의 넓이는 다음과 같다.

반지름 × 반지름 × 원주율(π) = 원의 넓이

그리고 택시 기하학은 솔직히 정확하게 이해를 못해서 잘 설명을 못하겠지만 이러한 마름모 모양을 원이라고 정의한다고 한다.

 

택시 기하학에서의 원

 

다음 그림의 반지름은 5인 원이라는 것이다. 그렇다면 택시 기하학에서의 원의 넓이를 구하는 공식은 다음과 같다.

반지름 × 반지름 × 2 = 원의 넓이

그렇다면 이제 해당하는 답을 구하는 방법에 대해서 알아보았으니 이제 공식에 맞춰서 코드를 작성하고 출력하면 끝이다.

3. 느낀 점

개념에 대해서 잘 알고 있다면 아무 문제가 없을 것 같지만 유클리드 기하학과 택시 기하학에 대해서 문제만 보고 알 수 없어서 조금 찾아봐야 했다. 유클리드 기하학 같은 경우에는 어렸을 때부터 배워왔으니 완전히 이해하지는 못하더라도 뭔가 납득할 수 있는데 택시 기하학은 전혀 이해할 수가 없어서 그저 택시 기하학에서의 원의 모양을 보고 넓이를 구했기에 해결할 수 있었는데 나중에 한번 개념이 쉽게 풀어진 것을 발견한다면 그때 다시 천천히 봐야겠다.