여니의 취준 준비/코딩테스트 (Java)

[2563] 색종이 in Java

여니's 2022. 8. 9. 16:00

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

 

2563번: 색종이

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

www.acmicpc.net


문제 요약

흰색 도화지 : 100 x 100
검은색 정사각형 크기 : 10 x 10
검은색 정사각형의 변과 흰색 도화지의 변이 평행하도록 붙인다. 
*** 색종이가 붙은 검은 영역의 넓이 구하기 ***

 

 

 

접근 방식

101 x 101 크기의 boolean 배열을 만들고

색종이의 위치를 기록하면서

색종이가 붙은 영역의 넓이를 구함

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
        int colorPaper=Integer.parseInt(br.readLine());
        boolean[][] array=new boolean[101][101]; 
        StringTokenizer st;
        int cnt=0;
        for(int k=0; k<colorPaper; k++) {
            st=new StringTokenizer(br.readLine());
            int r=Integer.parseInt(st.nextToken());
            int c=Integer.parseInt(st.nextToken());
            for (int i = r; i < r+10; i++) {
                for (int j = c; j <c+10; j++) {
                    if (!array[i][j]) {
                        array[i][j]=true;
                        cnt+=1;
                    }
                }
            }
        }
        System.out.println(cnt);
    }
}
cs