inblog logo
|
LHS's Study Space
    알고리즘문제풀기C#

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

    C#
    lhs's avatar
    lhs
    Jan 14, 2025
    [알고리즘 문제 풀기] 직사각형 네개의 합집합의 면적 구하기(2669)
    Contents
    1. 문제 풀이 아이디어2. 나의 정답 코드3. 정리
    www.acmicpc.net
    https://www.acmicpc.net/problem/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

    RSS·Powered by Inblog