[백준 9063] 대지

alsry._.112·2023년 8월 18일
0

백준

목록 보기
27/102

🔗문제 풀러가기
단계별로 풀어보기 단계 10의 5번째 문제이다.

문제 분석


사각형의 꼭짓점을 구하는 방식으로 문제를 해결하였다.

코드

#include <iostream>
#include <stdlib.h>
 using namespace std;


 int main()
 {
	 int cnt;

	 cin >> cnt;

	 int smallX = 100000, smallY = 100000, bigX = -100000, bigY = -100000;

	 for (int i = 0; i < cnt; i++)
	 {
		 int x, y;

		 cin >> x >> y;

		 if (x <= smallX) { smallX = x; }
		 if (y <= smallY) { smallY = y; }
		 if (x > bigX) { bigX = x; }
		 if (y > bigY) { bigY = y; }

	 }

	 cout << abs((bigX - smallX) * (bigY - smallY));
 }

해석

  1. 입력될 좌표는 -10,000 이상 10,000 이하의 정수이므로 수의 범위를 -10,000 이상 10,000 이하로 잡고
    가장 큰 X,Y와 가장 작은 X,Y값을 담아둘 변수를 선언한다.
  2. 입력받은 횟수만큼 for문을 돌며 가장 큰 X,Y와 가장 작은 X,Y값을 저장한다.
  3. 사각형의 각각의 변의 길이는 가장 큰 좌표에서 가장 작은 좌표의 값을 빼면 되므로 X축, Y축 각각의 변의 길이를 구한다.
    이때 변의 길이는 음수가 될 수 없으므로 abs를 통해 절대값으로 구한다.
  4. 이렇게 구한 두 변을 곱해 넓이를 구해 출력하면 끝!
profile
소통해요

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기