C#

백준 C# 9063 문제 풀이

psb08 2024. 10. 23. 16:32
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