기하학(geometry)은 컴퓨터 과학의 여러 분야에서 다양한 알고리즘 문제를 만들어냅니다. 특히 코딩 테스트에서는 기하학적 문제들이 자주 출제되며, 이들은 종종 점, 선, 다각형 등을 다루는 경우가 많습니다.
문제: 두 점 사이의 거리 구하기
상단에서 두 점 A(x1, y1)
와 B(x2, y2)
가 주어질 때, 이 두 점 사이의 유클리드 거리를 구하는 프로그램을 작성해주세요.
문제 정리
- 입력: 두 점의 좌표
(x1, y1)
와(x2, y2)
- 출력: 두 점 사이의 거리
거리 공식
유클리드 거리는 다음과 같은 공식을 사용하여 계산할 수 있습니다:
distance = √((x2 - x1)² + (y2 - y1)²)
C# 코드
아래는 문제를 해결하기 위한 C# 코드 예시입니다:
using System;
class Program
{
static void Main()
{
// 점 A의 좌표 입력
Console.Write("점 A의 x 좌표를 입력하세요: ");
double x1 = Convert.ToDouble(Console.ReadLine());
Console.Write("점 A의 y 좌표를 입력하세요: ");
double y1 = Convert.ToDouble(Console.ReadLine());
// 점 B의 좌표 입력
Console.Write("점 B의 x 좌표를 입력하세요: ");
double x2 = Convert.ToDouble(Console.ReadLine());
Console.Write("점 B의 y 좌표를 입력하세요: ");
double y2 = Convert.ToDouble(Console.ReadLine());
// 거리 계산
double distance = Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
// 결과 출력
Console.WriteLine($"두 점 A({x1}, {y1})와 B({x2}, {y2}) 사이의 거리는 {distance}입니다.");
}
}
코드 설명
위의 코드에서 우리는 사용자가 점 A와 B의 좌표를 입력하게 한 뒤, 유클리드 거리를 계산합니다. 이때 Math.Sqrt
와 Math.Pow
메서드를 사용하여 제곱과 제곱근을 구합니다.
테스트 케이스
프로그램이 올바르게 작동하는지 확인하기 위해 몇 가지 테스트 케이스를 고려합니다:
- 점 A(0, 0)와 점 B(3, 4): 결과는 5
- 점 A(1, 1)와 점 B(1, 1): 결과는 0
- 점 A(2, 3)와 점 B(5, 7): 결과는 약 5
결론
기하학적 문제는 코딩 테스트에서 매우 유용한 주제입니다. 특히 점 간의 거리 계산과 같은 기본적인 문제를 제대로 이해하고 구현한다면, 더 복잡한 기하 문제를 해결하는 데에도 큰 도움이 될 것입니다. 꾸준한 연습을 통해 알고리즘 문제 해결 능력을 향상시키길 바랍니다.