C# 코딩테스트 강좌, 기하 알아보기

기하학(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.SqrtMath.Pow 메서드를 사용하여 제곱과 제곱근을 구합니다.

테스트 케이스

프로그램이 올바르게 작동하는지 확인하기 위해 몇 가지 테스트 케이스를 고려합니다:

  • 점 A(0, 0)와 점 B(3, 4): 결과는 5
  • 점 A(1, 1)와 점 B(1, 1): 결과는 0
  • 점 A(2, 3)와 점 B(5, 7): 결과는 약 5

결론

기하학적 문제는 코딩 테스트에서 매우 유용한 주제입니다. 특히 점 간의 거리 계산과 같은 기본적인 문제를 제대로 이해하고 구현한다면, 더 복잡한 기하 문제를 해결하는 데에도 큰 도움이 될 것입니다. 꾸준한 연습을 통해 알고리즘 문제 해결 능력을 향상시키길 바랍니다.