백준문제풀이 10단계 기하: 직사각형과 삼각형(5) 9063번 대지 (C#)

2024. 6. 29. 20:00백준 문제풀이/10단계 기하: 직사각형과 삼각형

 

문제가 엄청길다...!

요약하자면 전쟁으로 땅문서를 잃어버린 임씨가

땅속에 묻어 놓은 자신의 이름이 세겨진 옥구슬을 찾아 자신의 땅임을 증명하는 문제이다.

 

구슬의 갯수와 각각의 좌표가 주어지는데

모든 구슬을 포함하고 축과 평행하는 가장작은 직사각형의 넓이를 구하면 된다.

 

using System;
class BackJoon
{
    static void Main(string[] args)
    {
        int x1 = int.MaxValue;
        int y1 = int.MaxValue;
        int x2 = int.MinValue;
        int y2 = int.MinValue;

        int N = int.Parse(Console.ReadLine());
        for (int i = 0; i < N; i++)
        {
            string[] input = Console.ReadLine().Split();
            int inputX = int.Parse(input[0]);
            int inputY = int.Parse(input[1]);
            if (inputX < x1)
                x1 = inputX;
            if (inputX > x2)
                x2 = inputX;
            if (inputY < y1)
                y1 = inputY;
            if (inputY > y2)
                y2 = inputY;
        }
        Console.WriteLine((x2 - x1) * (y2 - y1));
    }
}

 

먼저 임씨땅의 좌표가 될 x1,x2,y1,y2를 선언해주자 비교를 해야하기위해

최댓값이 될 x2와 y2는 MiValue로 가장작은 값을 넣어주고

최소값이 될 x1과 y1은 MaxValue로 가장 큰 값을 넣어주자.

 

구슬의 개수 N을 받고 그만큼 for문을 반복해주자.

비교를하며 작은값은 x1,y1에 넣어주고 큰값은 x2,y2에 넣어주자.

 

for문이 끝나면 직사각형의 밑변과(x2-x1) 높이를(y2-y1) 곱해서 넓이를 출력해주자.