본문 바로가기
CS/Algorithm

[알고리즘][BOJ][2563] 색종이

by 별토끼. 2018. 10. 16.
반응형

[알고리즘][BOJ][2563] 색종이

 

 

문제

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

 

 

풀이

색종이가 겹쳐졌을 때 겹친 횟수를 카운팅 해줍니다. 또한, 전체 넓이는 [색종이의 수 * 100] 이므로 [겹친 횟수 + 1] 만큼 넓이에서 빼주면 됩니다.

 

 

코드

package algorithm_basic;

import java.util.Scanner;

public class q_2563 {
    static int[][] paper;
    static int[][] all;
    static int num;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        num = sc.nextInt();
        sc.nextLine();
        paper = new int[num][2];
        all = new int[101][101];

        //색종이 좌표 입력 & 좌표 체크
        for(int i=0;i<num;i++) {
            paper[i][0] = sc.nextInt();
            paper[i][1] = sc.nextInt();
            checking(paper[i][0],paper[i][1]);
        }
        
        //색종이 넓이
        int width = 100*num;
        for(int i=0;i<101;i++) {
            for(int j=0;j<101;j++) {
                if (all[i][j]==0 || all[i][j]==1) {
                    continue;
                }else {
                    width = width - all[i][j] + 1;
                }
                
            }
        }
        
        System.out.println(width);
    }
    
    //좌표 체크하는 함수
    static void checking(int p, int q) {
        for(int i=0;i<10;i++) {
            for(int j=0;j<10;j++) {
                all[p+i][q+j]++;
            }
        }
    }
    

}

 

반응형

댓글