코딩/백준 문제 (브론즈)

[백준/9063/C언어] 대지 _ 풀이

룻밤 2023. 8. 31. 18:17

 

https://www.acmicpc.net/problem/9063

 

9063번: 대지

첫째 줄에는 점의 개수 N (1 ≤ N ≤ 100,000) 이 주어진다. 이어지는 N 줄에는 각 점의 좌표가 두 개의 정수로 한 줄에 하나씩 주어진다. 각각의 좌표는 -10,000 이상 10,000 이하의 정수이다. 

www.acmicpc.net


풀이

#include <stdio.h>
int main() {
	int n, x, y;
	// x축의 최댓값과 최솟값
	int xmin = 10001, xmax = -10001;
	// y축의 최댓값과 최솟값
	int ymin = 10001, ymax = -10001;

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d %d", &x, &y);
		if (xmax < x) xmax = x;		// x최대
		if (xmin > x) xmin = x;		// x최소
		if (ymax < y) ymax = y;		// y최대
		if (ymin > y) ymin = y;		// y최소
	}
	// x변 * y변 = 넓이
	printf("%d\n", (xmax - xmin) * (ymax - ymin));
	return 0;
}

점들이 감싸는 직사각형의 넓이만 구하는게 문제의 목표

그렇기에 각 축의 최댓값과 최솟값을 구하여 빼고 서로 곱하면 원하는 답을 출력할 수 있다.