
1. 문제 풀이 아이디어
- 2차원 배열을 활용하여 문제를 해결할 수 있다.
2. 나의 정답 코드
bool[,] map = new bool[100, 100];
int result = 0;
for (int i = 0; i < 4; i++)
{
string[] split = Console.ReadLine().Split();
int x1 = int.Parse(split[0]);
int y1 = int.Parse(split[1]);
int x2 = int.Parse(split[2]);
int y2 = int.Parse(split[3]);
for (int j = x1; j < x2; j++)
{
for (int k = y1; k < y2; k++)
{
if (!map[j, k])
{
map[j, k] = true;
result++;
}
}
}
}
Console.WriteLine(result);
3. 정리
- 크기가
100x100
인 2차원 배열을 생성하여 모든 값을false
로 초기화한다.
for
루프를 사용하여 4개의 사각형 좌표를 입력받는다.- 각 좌표의 범위 안에서 2중
for
루프를 사용하여 해당 영역을 순회한다. - 순회 중, 해당 위치가
false
라면true
로 설정하고, 결과값을 1 증가시킨다.
- 모든 입력을 처리한 후, 결과값을 출력하여 겹치지 않는 영역의 크기를 구한다.
- C#에서는 2차원 배열의 요소를
[i, j]
형식으로 접근한다.
Share article