[백준] 2563번 색종이 Java 문제 풀이

2023. 1. 30. 18:44알고리즘/백준

728x90
반응형

문제풀이

import java.util.Scanner;

interface Main {
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt(), xst_point, yst_point, area = 0;
        boolean[][] arr = new boolean[100][100];

        for(int i=0; i<N; i++) {
            xst_point = sc.nextInt();
            yst_point = sc.nextInt();
            for(int x=xst_point; x<xst_point+10; x++) {
                for(int y=yst_point; y<yst_point+10; y++) {
                    if(!arr[y][x]) {
                        area++;
                        arr[y][x] = true;
                    }                    
                }
             }
        }
        System.out.println(area);
    }
}

크기가 100 X 100으로 고정입니다.

 

색종이가 덮인 면적을 계산하는 문제입니다.

색종이가 몇 겹을 겹치건 1번 이상 덮이기만 하면 됩니다.

 

입력받은 값 부터 +10까지를 변으로 하는 정사각형이 만들어지므로 이중 for 문을 사용하여

입력받은 지점의 배열 값이 false일 경우 true로 바꿔주고 area 값을 1씩 증가시킵니다.

 

같은 지점이 나오더라도 이미 true이기 때문에 값은 증가되지 않습니다.

 

최종적으로 area 값을 출력해 주면 정답입니다.

 

출처 : https://www.acmicpc.net/problem/2563

 

2563번: 색종이

가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록

www.acmicpc.net

 

728x90
반응형