728x90
문제 링크 : https://www.acmicpc.net/problem/9063
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 브론즈 3 문제 입니다.
문제명 : 대지
내 코드
int bead = int.Parse(Console.ReadLine());
string[] coordinate = new string[2];
int[] x = new int[bead];
int[] y = new int[bead];
for (int i = 0; i < bead; i++)
{
coordinate = Console.ReadLine().Split();
x[i] = int.Parse(coordinate[0]);
y[i] = int.Parse(coordinate[1]);
}
if (bead == 1)
{
Console.WriteLine(0);
}
else
{
Array.Sort(x);
Array.Sort(y);
Console.WriteLine(Math.Abs(x[0] - x[bead - 1]) * Math.Abs(y[0] - y[bead - 1]));
}
문제 풀이 해석 내용
입력 처리
int bead = int.Parse(Console.ReadLine());
사용자로 부터 비드의 개수를 입력 받아 변수 bead에 저장합니다.
좌표 배열 선언
string[] coordinate = new string[2];
int[] x = new int[bead];
int[] y = new int[bead];
좌표를 저장할 문자열 배열 coordinate를 선언합니다.
x와 y라는 두 개의 정수 배열을 선언하여 비드의 x와 y좌표를 저장합니다.
좌표 입력
for (int i = 0; i < bead; i++)
{
coordinate = Console.ReadLine().Split();
x[i] = int.Parse(coordinate[0]);
y[i] = int.Parse(coordinate[1]);
}
bead의 개수만큼 반복하여 각각의 비드의 좌표를 입력 받습니다.
각 좌표를 공백으로 구분하여 coordinate 배열에 저장합니다.
그 다음 x좌표와 y좌표를 각각 x와 y 배열에 저장합니다.
넓이 계산
if (bead == 1)
{
Console.WriteLine(0);
}
else
{
Array.Sort(x);
Array.Sort(y);
Console.WriteLine(Math.Abs(x[0] - x[bead - 1]) * Math.Abs(y[0] - y[bead - 1]));
}
비드가 하나만 있을 경우, 직사각형을 만들 수 없으므로 넓이는 0을 출력합니다.
비드가 두 개 이상일 경우, x좌표와 y좌표를 각각 정렬합니다.
최소 직사각형의 넓이는 x좌표의 최댓값과 최솟값의 차이, y좌표의 최댓값과 최솟값의 차이를 곱하여 계산합니다. 이 결과를 출력합니다.
실행 결과
728x90
'C#' 카테고리의 다른 글
백준 C# 5073 문제 풀이 (0) | 2024.10.26 |
---|---|
백준 C# 14215 문제 풀이 (0) | 2024.10.25 |
백준 C# 3009 문제 풀이 (0) | 2024.10.22 |
백준 C# 1085 문제 풀이 (0) | 2024.10.21 |
백준 C# 10101 문제 풀이 (0) | 2024.10.20 |