[C++] 백준 2563번 : 색종이

wldud·2024년 11월 19일
0

알고리즘

목록 보기
27/34

요즘 알고리즘 감각을 잃어서 백준에서 단계별로 풀어보고 있다. 2차원 배열이었는데 위의 문제를 보고 2차원 배열로 어떻게 접근해야할지 감이 안 잡혔다. 그냥 전체에서 겹치는 부분을 빼주는 풀이로 해봤는데 너무 복잡하고 이게 맞나..? 싶었다....일단 백준 예시는 통과하길래 내봤는데 역시나 오답,,
도저히 어떤식으로 풀어야할지 감이 안잡혔다. 그래서 약간 찾아보면서 힌트만 얻었는데 다들 100*100 2차원 배열로 푼 것같았다. 그래서 2차원 배열을 0으로 초기화 시켜두고 하나씩 그 사각형이 지나는 부분은 1로 변경해두었다. 그리고 마지막으로 다시 처음부터 돌면서 1의 갯수를 세서 넓이를 구해주었다.

#include <iostream>

using namespace std;

int main(void){
  int array[100][100] = {0,};
  int result = 0;
  int n;
  cin>>n;

  for(int i=0;i<n;i++){
    int a,b;
    cin>>a>>b;
    for(int i=a;i<a+10;i++){
      for(int j=b;j<b+10;j++){
        array[i][j] = 1;
      }
    }
  }

  for(int i=0;i<100;i++){
    for(int j=0;j<100;j++){
      if(array[i][j] == 1)result++;
    }
  }

  cout<<result;
}

진짜 많이 어렵지 않은 문제인데 내가 너무 어렵게만 접근했던게 문제였던듯..🥹
알고리즘 열심히 해야지

0개의 댓글