본문 바로가기
Problem Solving/BOJ

[백준] 3053번 - 택시 기하학

by 테리는당근을좋아해 2020. 1. 10.

문제 >

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

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

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

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

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

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

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

 

입력 >

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

 

출력 >

첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다.

 

해결방법 > 

택시 기하학 뉴클리드 기하학의 정의를 알고 코드를 작성.

 

택시 기하학

 

뉴클리드 기하학

 

c++

#include <stdio.h>
#include <math.h>

using namespace std;

int main(){
    double pi = M_PI;
    double r;
    double a, b;

    scanf("%lf", &r);

    a = pi * pow(r,2);
    b = 2 * pow(r,2);
    printf("%.6f\n%.6f", a, b);
    return 0;

}

 

java

package baekjoon;

import java.util.*;

public class BOJ_3053 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		double a, b;
		
		a = 2 * Math.pow(n, 2);
		b = Math.PI * Math.pow(n, 2);
		
		System.out.printf("%.6f\n", b);
		System.out.printf("%.6f\n", a);
	}
}

 

문제링크 >

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

'Problem Solving > BOJ' 카테고리의 다른 글

[백준] 11399번 - ATM  (0) 2020.01.10
[백준] 11047번 - 동전 0  (0) 2020.01.10
[백준] 4153번 - 직삼각형  (0) 2020.01.10
[백준] 3009번 - 네 번째 점  (0) 2020.01.10
[백준] 4948번 - 베르트랑 공준  (0) 2020.01.10

댓글