본문 바로가기

백준

2563번: 색종이(Java)

 

 

 색종이가 겹치는 경우의 수는 너무 많아서 그냥 도화지를 만들고 한칸씩 칠해나가는 방법으로 문제를 해결했다.

 2차원 배열로 도화지를 만들고  좌표를 입력받을 때 마다 두  좌표의 + 10 범위를 돌면서 칠해져 있지 않다면 칠하고 넓이를 1씩 증가시켰다. 

 

 

 

 

<전체 코드>

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int area = 0;//넓이
        int x, y;//입력받을 좌표

        boolean[][] paper = new boolean[101][101];//도화지

        for(int i = 0; i<n; i++)
        {
            //좌표를 입력받는다
            x = scanner.nextInt();
            y = scanner.nextInt();

            //x, y좌표 + 10 범위를 돌면서 칠해져 있지 않으면 칠한다
            for(int j = x; j<x+10; j++)
            {
                for(int k = y; k<y+10; k++)
                {
                    //칠해져 있지 않다면
                    if(!paper[j][k])
                    {
                        paper[j][k] = true;//칠한다
                        area++;//총 넓이 증가
                    }
                }
            }
        }

        System.out.print(area);
    }
}

'백준' 카테고리의 다른 글

1764번: 듣보잡(Java)  (0) 2023.01.30
11478번: 서로 다른 부분 문자열의 개수(Java)  (0) 2023.01.30
10773번: 제로(Java)  (0) 2023.01.22
14425번: 문자열 집합(Java)  (0) 2023.01.22
10814번: 나이 순 정렬(Java)  (0) 2023.01.21