BOJ 3053

2020-02-11

위 문제는 백준 사이트의 알고리즘 3053 문제에 관한 설명입니다.


문제

19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다.

택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다.

D(T1,T2) = x1-x2 + y1-y2

두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다.

따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다.

원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합

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

입력

첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다.

출력

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


import java.io.*;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int R = Integer.parseInt(br.readLine());
        System.out.printf("%.6f\n", (double) Math.PI * R * R);
        System.out.printf("%.6f\n", (double) 2 * R * R);

        br.close();
    }
}

제가 푼 소스코드입니다.

코드 설명

Buffer를 이용해서 풀었습니다.

값을 읽어들인뒤 변수 R에 저장합니다.

유클리드 기하학에서의 원의 형태란,

일반적으로 생각하는 R * R * Pi입니다.

택시 기하학에서의 반지름이 R인 원의 넓이란,

두 대각선의 길이가 2R인 마름모의 넓이입니다.

마름모의 넓이는 한 대각선(2R)에서 다른 대각선을 2등분한 길이(R)를 곱해주면 됩니다.

즉, 택시 기하학에서 반지름이 R인 원의 넓이는 2R * R 입니다.

구현 자체는 쉬웠습니다.

택시의 기하학