본문 바로가기
알고리즘 문제풀이/백준

[백준 2563] 색종이(JAVA)

by 소보루:-) 2020. 3. 5.

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

 

2563번: 색종이

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

www.acmicpc.net

 

색종이 좌표를 받으면서, 이전에 색칠된 자리가 아니면 카운트를 증가시키면 되는 간단한 문제이다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main_bj_2563_색종이 {

	public static int N,ans=0;
	public static int[][] map=new int[101][101];
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N=Integer.parseInt(br.readLine());
		for(int n=0; n<N; n++) {
			StringTokenizer st=new StringTokenizer(br.readLine()," ");
			int y=Integer.parseInt(st.nextToken());
			int x=Integer.parseInt(st.nextToken());
			for(int i=x; i<x+10; i++) {
				for(int j=y; j<y+10; j++) {
					if(map[i][j]==0) {
						map[i][j]=1;
						ans++;
					}
				}
			}
			
		}
		System.out.println(ans);
	}

}

댓글