백준 온라인 저지 3053번 택시 기하학
문제 출처 : https://www.acmicpc.net/problem/3053
풀이 과정
처음에 택시 기하학이 좀 찾아봤습니다. 택시 기하학에 대해서는 아래 링크에 설명이 잘 되어있습니다.
간단히 요약하자면 유클리드 기하학에서는 우리가 평소에 알고있는 원의 모양을 가지지만, 택시 기하학에서는 45도 기울어진 정사각형의 모양을 가집니다.
따라서 문제에서는 반지름 r이 주어지므로 유클리드 기하학에서의 원의 넓이는 우리가 알고 있는 PI * 반지름 * 반지름을 이용하여 구하면 됩니다.
택시 기하학에서의 원의 넓이는 정사각형의 넓이를 구하는 것이므로 반지름을 어떻게 이용할 것인지 생각해봐야 합니다.
정사각형의 대각선의 길이 = 2r 이므로 한 변의 길이를 a라고 했을 때 (2r)^2 = 2a^2 (피타고라스 정리) 이므로 2r^2 = a^2 이 됩니다.
정사각형의 넓이는 한 변의 길이 * 한 변의 길이 이므로 a^2가 되는데 a^2 = 2r^2이므로 이를 통해 간단하게 구할 수 있습니다.
이해가 잘 안되시면 위 링크에 그림 보시면서 글 보시면 이해가 더 잘 되실겁니다.
소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int r = Integer.parseInt(in.readLine());
System.out.println(String.format("%6f", euclid(r)));
System.out.println(String.format("%6f", taxi(r)));
}
public static double euclid(int r) {
return Math.PI * (r * r);
}
public static double taxi(int r) {
return 2 * r * r;
}
}
'백준온라인저지' 카테고리의 다른 글
| 2420번 사파리월드 (0) | 2018.09.12 |
|---|---|
| 2476번 주사위 게임 (0) | 2018.08.31 |
| 2503번 숫자 야구 (0) | 2018.08.27 |
| 1516번 게임 개발 (0) | 2018.08.23 |
| 1946번 신입사원 (0) | 2018.08.22 |