백준 3053번 : 택시 기하학[Java]

문제 출처

www.acmicpc.net/problem/3053

 

3053번: 택시 기하학

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

www.acmicpc.net

 

일단 문제 처음 읽고 아니 이게 무슨소리지? 싶어서 정리를 먼저 하겠다.

택시 기하학에서 두점 T1(x1, y1), T2(x2, y2)의 거리는

D(T1, T2) = |x1 - x2| + |y1- y2| 이다.

 

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

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

원은 평면 상의 어떤 점에서 거리가 일정한 점들의 집합이다.

 

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

 

아니 구체적으로 유클리드 기하학에서 원의 넓이와

택시 기하학에서 원의 넓이가 대체 뭐란말인가?

 

택시 기하학의 원은 중심 점에서 반지름이라고 불리는 일정한 거리만큼 떨어져 있는 접들의 집합이다. 즉 우리가 아는 동그란 원의 형태가 아니라 반지름의 거리만큼 떨어져 있다면 다른 형태가 나올 수도 있는 것이다. 

이 원은 좌표의 축으로 45도 기울어진 정사각형이다.

 

문제 풀이를 하는데에 있어 내가 택시 기하학이 무엇인지 알 필요가 없다.

힌트에서 알아 내야 하는 정보는 딱 하나 택시 기하학의 원은 45도 기울어진 정사각형이다.

 

이 사각형의 한 변의 길이를 알아내는 방법은 2R^2에 루트를 씌우는 것이다.

단 넓이를 구하는 것이기에 넓이를 구하는 공식은 2R^2

 

유클리드 기하학의 원은 보통 알고 있던 공식 파이알제곱

import java.util.Scanner;
public class d025_Q3053 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int R = sc.nextInt();
		double u = R * R * Math.PI;
		double t = 2 * R * R;
		System.out.println(u);
		System.out.println(t);
		sc.close();
	}
}

 

 

자리수를 깔끔하게 정리하는 법도 있겠지만... 아무튼 그렇다. 끝

myoskin