본문 바로가기
코딩테스트/[백준]단계별로풀어보기(C++)

[백준][2차원배열] 2563번 : 색종이 (C++)

by 오리로스 2024. 3. 17.

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

 

2563번: 색종이

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

www.acmicpc.net

풀이
#include <iostream>
#include <vector>
using namespace std;
int main(){

    vector<vector<bool>> v(100,vector<bool>(100,false));
    int n;
    cin >> n;
    int result{0};
    for(int i{0};i<n;++i){
        int a,b;
        cin >> a >> b;
        for(int l{a};l<a+10;++l){
            for(int bot{b};bot<b+10;++bot){
                if(v[l][bot]==false){
                    v[l][bot]=true;
                    result++;
                }
            }
        }
    }
    cout << result << endl;
    return 0;
}

 

100 x 100 bool 벡터를 만들고 각 색종이 케이스에 대해 검은 종이 범위 안에 있으면 true로 바꾸는 방식으로 벡터를 업데이트 하였다. false -> true로 바꿀 때 바꾼 횟수를 세어 출력하면 면적을 구할 수 있다.