[백준] 3053번 Python (유클리드 기하학과 택시 기하학)
문제
19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다.
택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다.
D(T1,T2) = |x1-x2| + |y1-y2|
두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다.
따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다.
원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합
반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다.
예제 입력 1 복사
1
예제 출력 1 복사
3.141593
2.000000
예제 입력 2 복사
21
예제 출력 2 복사
1385.442360
882.000000
예제 입력 3 복사
42
예제 출력 3 복사
5541.769441
3528.000000
[정답 코드]
import math
# print(math.pi) # 파이
r = int(input())
print((r**2)*(math.pi))
print((r**2)*2)
[문제 풀이에 사용된 개념]
이 문제는, 반지름 R이 주어졌을 때,
해당 R을 이용하여 유클리드 기하학에서 정의하는 원의 넓이와, 택시 기하학에서 정의하는 원의 넓이를 출력하는 문제이다.
- 유클리드 기하학이란?
유클리드 기하학은, 직관적으로 받아들일 수 있는 공리를 참으로 간주한다.
[유클리드 기하학의 공준]
- 어떤 한 점에서 다른 한 점으로 선분을 그릴 수 있다.
- 임의의 선분을 선을 따라 다른 선분으로 연장할 수 있다.
- 어떤 한 점을 중심으로 하고 이에 대한 거리(반지름)로 하나의 원을 그릴 수 있다.
- 모든 직각은 서로 같다.
- 평행선 공준 : 두 직선이 한 직선과 만날 때, 같은 쪽에 있는 내각의 합이 2직각(180도)보다 작으면 이 두 직선을 연장할 때 2지각ㄱ보다 작은 내각을 이루는 쪽에서 반드시 만난다.
유클리드 기하학의 공준에서 3번을 보면, 우리가 흔히 알고 있는 원의 정의와 같다.
즉, 유클리드 기하학에서 정의 하는 원의 넓이는 (R**2) * pi 이다.
- 택시 기하학이란?
택시기하학은, 기하학 중에 한가지로, 거리에 대한 정의가 유클리드 기하학에서의 정의와 다르다.
보통 Taxicap geometry 라고 부르지만, 거리에 대한 내용만 다룰 경우 '맨해튼 거리(Manhattan distance)라고 부른다.
미국 뉴욕의 맨해튼처럼 바둑판 격자 모양으로 도로가 나있는 상황에서, 한 지점에서 다른 위치로 이동하기 위해서 필요한 거리를 뜻한다.
도로가 격자처럼 되어 있으니 도로를 따라 이동해야 하는데, 이때의 이동거리가 두 점 사이의 거리가 된다. (초록색선은 맨해튼 거리가 아님)
택시 기하학에서의 원은 한 정점에서 일정한 거리에 있는 점들의 집합으로 정의되며, 정점을 원의 중심, 일정한 거리를 원의 반지름 이라고 한다.
유클리드 기하학에서의 원의 정의와 택시 기하학에서의 원의 정의를 비교해보면 아래와 같다.
즉, 택시 기하학 역시 유클리드 좌표평면을 사용하며, 점, 선 각도 모두 같은 방법으로 측정된다.
다만, 다른 점은 "거리"의 개념이다.
택시기하학에서는 거리는 택시가 가는 경로를 취하는 것이다.
즉, 택시기하학에서의 원의 넓이는 (R**2) * 2 이다.
유클리드 기하학과 택시 기하학의 개념이 이 문제를 해결하는 핵심이었다.
우리는 대부분 원을 그려보라 하면, 유클리드 거리에서 정의하는 원을 그리곤 한다.
우리는 유클리드가 기하학의 세상에 살고있다.
가끔은, 택시 기하학의 원을 떠올려 보는 창의적인 사람이 되자.
'Problem Solving' 카테고리의 다른 글
[백준] 2447번 별찍기 문제 재귀 함수 이용해서 풀기 (0) | 2022.01.27 |
---|---|
[백준] 10872번 재귀 함수 이용해서 풀기 (feat. 재귀 함수란?) (0) | 2022.01.24 |
[백준] 1002번 터렛 python (두 원의 교점의 개수 구하기) (0) | 2022.01.22 |
[프로그래머스] 완주하지 못한 선수 문제 풀이(해시 Lv.1) - 파이썬 Python (0) | 2022.01.19 |
[백준] 1978번 에라토스테네스의 체- 소수 판별 알고리즘 (소수 찾기) (0) | 2022.01.10 |
댓글
이 글 공유하기
다른 글
-
[백준] 10872번 재귀 함수 이용해서 풀기 (feat. 재귀 함수란?)
[백준] 10872번 재귀 함수 이용해서 풀기 (feat. 재귀 함수란?)
2022.01.24 -
[백준] 1002번 터렛 python (두 원의 교점의 개수 구하기)
[백준] 1002번 터렛 python (두 원의 교점의 개수 구하기)
2022.01.22 -
[프로그래머스] 완주하지 못한 선수 문제 풀이(해시 Lv.1) - 파이썬 Python
[프로그래머스] 완주하지 못한 선수 문제 풀이(해시 Lv.1) - 파이썬 Python
2022.01.19 -
[백준] 1978번 에라토스테네스의 체- 소수 판별 알고리즘 (소수 찾기)
[백준] 1978번 에라토스테네스의 체- 소수 판별 알고리즘 (소수 찾기)
2022.01.10