문제설명
소스코드
#include <iostream>
using namespace std;
int main()
{
int whitepaper[100][100] = { 0 };
int N; int row; int col; int total = 0;
cin >> N;
for (int i = 0; i < N; ++i)
{
cin >> row >> col;
for (int j = row; j < row + 10; ++j) for (int k = col; k < col + 10; ++k) whitepaper[j][k] = 1;
}
for (int i = 0; i < 100; ++i) for (int j = 0; j < 100; ++j) total += whitepaper[i][j];
cout << total << endl;
}
풀이
- 100X100 2차원 배열을 선언하고 0으로 초기화한다.
- 사용자로부터 행과 열을 입력받은 수를 각각 row와 col이라고 하면 row + 10, col + 10인 부분은 모두 1로 바꿔준다.
- 1의 수를 모두 더하면 정답이다.
- 아래의 코드는 위 과정을 시각적으로 나타낸다.
#include <iostream>
using namespace std;
void print(int arr[100][100])
{
for (int i = 0; i < 100; ++i)
{
for (int j = 0; j < 100; ++j) cout << arr[i][j] << " ";
cout << endl;
}
}
int main()
{
int whitepaper[100][100] = { 0 };
int N; int row; int col; int total = 0;
cin >> N;
for (int i = 0; i < N; ++i)
{
cin >> row >> col;
for (int j = row; j < row + 10; ++j) for (int k = col; k < col + 10; ++k) whitepaper[j][k] = 1;
}
for (int i = 0; i < 100; ++i) for (int j = 0; j < 100; ++j) total += whitepaper[i][j];
cout << total << endl;
print(whitepaper);
}
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 8단계 - 2745번 문제 (진법 변환) (0) | 2023.04.22 |
---|---|
[C++] 백준 - 4470번 문제 (줄 번호) (0) | 2023.04.21 |
[C++] 백준 7단계 - 10798번 문제 (세로읽기) (0) | 2023.04.18 |
[C++] 백준 7단계 - 2566번 문제 (최댓값) (0) | 2023.04.18 |
[C++] 백준 7단계 - 2738번 문제 (행렬 덧셈) (0) | 2023.04.17 |