[알고리즘 문제 풀기] 직사각형 네개의 합집합의 면적 구하기(2669)

C#
lhs's avatar
Jan 14, 2025
[알고리즘 문제 풀기] 직사각형 네개의 합집합의 면적 구하기(2669)
notion image

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

LHS's Study Space