택시 기하학

문제

언어

  • JavaScript

순서도

  1. 택시 기하학에서의 두 점 사이의 거리 이해하기
  2. 유클리드 기하학에서의 원의 넓이 구하기
  3. 택시 기하학에서의 원의 넓이 구하기
  4. 두 개의 원의 넓이 출력하기

문제 풀이 step 1

  • 우선 택시 기하학에서의 두 점 사이의 거리를 이해해야 합니다.
  • 그 전에 원래 두 점 사이의 거리를 어떻게 구했는 지 알아보겠씁니다.
    • 좌표가 (0, 0) 그리고 (1, 1) 인 두 점이 주어졌을 때,
    • 두 점 사이의 거리는 피타고라스의 방정식에 의해서
    • Math.sqrt(Math.pow(1 - 0)) - Math.sqrt(Math.pow(1 - 0)) 으로 2 입니다.
    • 이것이 유클리드 기하학에서의 두 점 사이의 거리입니다.
  • 그리고 택시 기하학에서 위에서 주어진 점과 똑같은 점이 주어졌을 때, 두 점 사이의 거리는
    • |0 - 1| + |0 - 1| 로 1 입니다.
  • 즉, 유클리드 기하학에서의 두 점 사이의 거리는 실제로 두 점 사이의 직선 거리를 의미합니다. 백준 3053번 유클리드 기하학에서의 두 점 사이의 거리
    • 위의 그림처럼 실선으로 그려진 부분이 두 점 사이의 거리입니다.
  • 반면에, 택시 기하학에서의 두 점 사이의 거리는 실제로 두 점 사이의 직선 거리가 아니라, X 좌표의 차이 + Y 좌표의 차이입니다. 백준 3053번 택시 기하학에서의 두 점 사이의 거리
    • 위의 그림처럼 실선으로 그려진 부분이 두 점 사이의 거리입니다.

문제 풀이 step 2

  • 이번에는 원의 넓이에서 어떤 차이가 발생하는 지 알아보겠습니다.
  • 일단, 두 기하학 모두 원에 대한 정의는 “평면 상의 어떤 점에서 거리가 일정한 점들의 집합” 으로 동일합니다.
  • 하지만, 두 점 사이의 거리에 대한 정의가 달라서 원의 모양이 다릅니다.
    • 유클리드 기하학에서는 우리에게 익숙한 그 원의 모양이 나옵니다. 백준 3053번 유클리드 기하학에서의 원
      • 그림 안의 1, 2, 3 번의 선들은 서로 길이가 같은 선입니다.
    • 택시 기하학에서는 원이 마름모의 모양이 나옵니다. 백준 3053번 택시 기하학에서의 원
      • 그림 안의 1, 2, 3 번의 선들은 서로 길이가 같은 선입니다.
  • 따라서 유클리드 기하학에서의 원의 넓이는 r * r * PI 이고, 택시 기하학에서의 원의 넓이는 (2 * r) * (2 * r) / 2 입니다.
  • 구한 원의 넓이들을 출력하면 정답이 됩니다.

후기

  • 좀 깔끔하게 그림을 그려서 설명하고 싶었지만, 마음처럼 쉽게 되진 않는 것 같습니다.
  • 역시 수학은 재미있습니다.

소스 코드

const input = require("fs")
	.readFileSync("/dev/stdin")
	.toString()
	.trim()
	.split("\n");

const solution = (input) => {
	const r = parseInt(input[0]);

	const euclidCircle = r * r * Math.PI;
	const taxiCircle = (2 * r * (2 * r)) / 2;

	return euclidCircle + "\n" + taxiCircle;
};

console.log(solution(input));