백준 온라인 저지 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 |