Algorithm/C++

[C++] 2563 : 색종이

ChanShare 2022. 11. 3. 12:17
728x90
반응형
 

2563번: 색종이

첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변

www.acmicpc.net

 

<code>

#include <iostream>
using namespace std;

int N;
int cd[111][111]; //컴퓨터의 픽셀과 비슷

int main() {
	int x,y;
	int ans;
	cin>>N;
	ans=0;
	for(int j=0;j<N;j++){
		cin>>x>>y;
        //픽셀 칠하기
		for(int a=x;a<x+10;a++){
			for(int b=y;b<y+10;b++){
				if(cd[a][b]==1) //픽셀이 채워지지 않을 경우 채우고, 답++
					continue;
				cd[a][b]=1;
				ans++; 
			}
		}
	}
	cout<<ans<<"\n";
	
    return 0;
}

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

 

 

화면의 픽셀을 생각하면 편할 것 같습니다.

100X100 모니터가 있다면 색종이를 얹는 부분에 픽셀을 채워주는 방식입니다.

cd에서 픽셀이 채워져 있다면 1, 채워져 있지 않다면 0으로 표시합니다.

픽셀 하나하나의 넓이는 "1*1=1"으로 1입니다.

만약 픽셀이 채워져 있다면 아무일도 일어나지 않고, 픽셀이 채워져 있지 않다면 픽셀을 채워주고,답을 픽셀의 넓이만큼 더해주는 것입니다.

728x90
반응형