# BOJ02563 색종이

https://www.acmicpc.net/problem/2563 (opens new window)

가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성한다.

# 제출 코드

가로, 세로의 크기가 각각 100인 정사각형 모형의 흰색 도화지를 2차 배열로 생각하고 작성한다. 입력받은 좌표를 시작으로 가로, 세로가 각각 10인 정사각형 만큼 1로 채워준다.

for (int i = 0; i < n; i++) {
    int x = scanner.nextInt();
    int y = scanner.nextInt();

    for (int j = x; j < x + 10; j++) {
        for (int k = y; k < y + 10; k++) {
            paper[j][k] = 1;
        }
    }
}

넓이는 구하는 방법은 단순하다. 이제 1의 개수를 모두 count한다.

아래는 최종 제출 코드이다.

import java.util.Scanner;

public class BOJ2563 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();

        int[][] paper = new int[100][100];

        for (int i = 0; i < n; i++) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();

            for (int j = x; j < x + 10; j++) {
                for (int k = y; k < y + 10; k++) {
                    paper[j][k] = 1;
                }
            }
        }

        int count = 0;
        for (int i = 0; i < 100; i++) {
            for (int j = 0; j < 100; j++) {
                if (paper[i][j] == 1) {
                    count++;
                }
            }
        }

        System.out.println(count);
    }
}
#BOJ #구현
last updated: 11/4/2021, 12:30:56 AM