반응형
택시 기하학에서 두 점 사이의 거리가 위 조건과 같을 때, 주어진 반지름을 가진 원의 넓이를 구하는 문제이다.
언뜻 보면 복잡해 보이는 문제이지만 간단하다.
원의 정의가 유클리드 기하학과 같기 때문에 먼저 택시 기하학에서 두 점 사이의 거리가 같은 점들을 구해본다.
예를 들어 반지름이 1일 경우 유클리드 기하학에서 원은 다음과 같이 표현할 수 있다.
하지만 택시 기하학에서는 두 점사이의 거리가 |x1 - y1| + |x2 - y2| 이므로
이 거리가 1이 되는 순서쌍에는 (1, 0) (0.5, 0.5) (0, 1) (-0.5, 0.5) ... 등이 있다.
이를 그림으로 나타내보면 다음과 같다.
즉 택시 기하학에서 반지름이 r인 원 (한 점으로부터 거리가 같은 점들의 집합) 의 넓이는
대각선이 2*r 인 마름모의 넓이와 같다고 볼 수 있겠다.
마름모의 넓이는 대각선 * 대각선 / 2로 쉽게 구할 수 있다.
따라서 위 조건에서 유클리드 기하학의 원의 넓이는 PI * r * r 이 되고
택시 기하학에서 원의 넓이는 (r * 2) * (r * 2) /2 가 된다. 즉 (r * 2) * r 와 같다.
이를 바탕으로 코드를 작성해보면 다음과 같다
import java.util.Scanner;
public class Back3053 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int r = sc.nextInt();
double ur;
double tr;
ur = Math.PI * r * r;
tr = (r * 2) * r;
System.out.printf("%f\n",ur);
System.out.printf("%f",tr);
sc.close();
}
}
문제의 출력처럼 유효숫자 7자리로 나타내기 위해 printf 를 사용하여 %f 형으로 잘라내어 표기하였다.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
[Java] 백준알고리즘 #2798 블랙잭 (0) | 2021.03.15 |
---|---|
[Java] 백준알고리즘 #1002 터렛 (0) | 2021.03.11 |
[Java] 백준알고리즘 #4153 직각삼각형 (0) | 2021.03.10 |
[Java] 백준알고리즘 #3009 네 번째 점 (0) | 2021.03.10 |
[Java] 백준알고리즘 #9020 골드바흐의 추측 (0) | 2021.03.09 |