반응형

● 문제 접근 과정

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

2. 일단 100의 도화지를 마련하기 위해 arr[101][101]을 생성

3. 입력 값 만큼 입력을 받고, 가로, 세로의 크기가 각각 10이기 때문에 +10 만큼 반복

4. 도화지가 붙혀진 부분은 1로 표시를 하고, 없는 부분은 0으로 표시

5. 카운팅을 해준 뒤 출력을 하면 끝.

● 구현

#include <iostream>
#include <string>
using namespace std;

int main() {
  int arr[101][101] = {0};
  int n, x, y;
  int area = 0;

  cin >> n;
  for (int k = 0; k < n; k++) {
    cin >> x >> y;

    for (int i = x; i < x + 10; i++) {
      for (int j = y; j < y + 10; j++) {
        if (arr[i][j] == 0) {
          arr[i][j] = 1;
          area++;
        }
      }
    }
  }

  cout << area;

  return 0;
}
반응형

+ Recent posts