백준 택시 기하학 - baegjun taegsi gihahag


3053. 택시 기하학 (누르면 해당 문제로 이동)

유클리드 기하학과 택시 기하학에 대한 문제

제약사항)

시간 : 1 초

메모리 : 128 MB

문제)

19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다.

택시 기하학에서 두 점 T1(x1, y1), T2(x2, y2) 사이의 거리는 다음과 같이 구할 수 있다.

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

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

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

원 : 평면 상의 어떤 점에서 거리가 일정한 점들의 집합

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

입력)

첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다.

출력)

첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다.

정답과의 오차는 0.0001까지 허용한다.

입출력 예제


풀이 순서)

유클리드 기하학과 택시 기하학에서 정의를 잘 생각해보면 쉬운 문제입니다.

1. 유클리드 기하학에서 원의 넓이 : pie*R^2

2. 택시 기하학에서 원의 넓이 : 2*R^2

     : 택시 기하학에서 원은 마름모 형태가 되므로 위 식으로 원의 넓이를 구할 수 있습니다.


소스코드 및 결과 (C)

#include <stdio.h>

#define PI 3.14159265358979

int main() {
	int R;

	scanf("%d", &R);

	printf("%.6f\n", PI*R*R);
	printf("%.6f\n", 2.0*R*R);

	return 0;
}

메모리 : 1112 KB

시간 : 0 ms

코드길이 : 158 B


https://www.acmicpc.net/problem/3053

import math
PI = math.pi

R = int(input())
print("{:.6f}".format(round(R**2*PI, 6)))
print("{:.6f}".format(R**2 + R**2))

📌 포인트

  • 파이는 import math 후 math.pi
  • 파이썬의 반올림 메서드는 round(숫자, 자릿수)
  • 소수점 N자리까지 출력하는 법은 "{:Nf}".format(숫자)

📌 풀면서 어려웠던 점
택시 기하학이 뭔지 모르고 (유클리드 기하학도 뭔지 모름) 예제의 숫자를 보고 때려맞췄다.
왼쪽이 우리가 아는, 유클리드 기하학에서의 원이고 오른쪽이 택시 기하학에서의 원이다.

백준 택시 기하학 - baegjun taegsi gihahag

문제에서 정의한 D(T1,T2) = |x1-x2| + |y1-y2| 를 보고 이 사진을 보면 이해가 된다.

백준 택시 기하학 - baegjun taegsi gihahag

NCS에서 많이 풀었던 모눈에서 최소거리의 길 갯수 구하는 문제랑 비슷한 느낌이다

유클리드 기하학과 택시 기하학

백준 택시 기하학 - baegjun taegsi gihahag

문제

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


문제 풀이

#include <iostream>
#include <cmath>
#define PI 3.1415926535897932
using namespace std;

int main() {
    long double R;
    cin>>R;
    cout<<fixed;
    cout.precision(6);
    cout<<powl(R, 2) * PI<<'\n';
    cout<<powl(R, 2) * 2<<'\n';
}

유클리드의 기하학에서 원의 넓이는 2πr²이지만

택시 기하학에서의 원은 마름모 모양이 나오므로 원의 넓이는 2r²이 됩니다.

소수점은 6자리로 고정해 주시고 출력하면 정답입니다.

출처 : https://www.acmicpc.net/problem/3053

3053번: 택시 기하학

문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |y1-y2| 두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다. 따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다. 원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합

www.acmicpc.net

백준 택시 기하학 - baegjun taegsi gihahag

백준 3053 택시 기하학 in python 쉽게 풀어보기


코드

1

2

3

4

import math

r=int(input())

print(r*r*math.pi)

print(r*r*2)

cs


코드설명

이 문제는 유클리드 기하학에서의 원과 택시 기하학에서의 원만 알면 쉬워진다.

<유클리드 기하학에서의 원>

<택시 기하학에서의 원>

즉, 유클리드 기하학에서의 원의 넓이은 원래 알던 식 그대로 pi*R^2 이고, 

택시 기하학에서는 밑변의 길이와 높이가 R인 삼각형 네 개의 넓이를 구하면 된다.