728x90
반응형
문제 설명
N * N 크기의 격자 정보가 주어집니다. 이때 해당 위치에 동전이 있다면 1, 없다면 0이 주어집니다. N * N 격자를 벗어나지 않도록 3 * 3 크기의 격자를 적절하게 잘 잡아서 해당 범위 안에 들어있는 동전의 개수를 최대로 하는 프로그램을 작성해보세요.
입력 형식
첫 번째 줄에는 격자의 크기를 나타내는 N이 주어집니다.
두 번째 줄부터는 N개의 줄에 걸쳐 격자에 대한 정보가 주어집니다. 각 줄에는 각각의 행에 대한 정보가 주어지며, 이 정보는 0또는 1로 이루어진 N개의 숫자로 나타내어지며 공백을 사이에 두고 주어집니다.
- 3 ≤ N ≤ 20
출력 형식
N * N 격자를 벗어나지 않으면서, 3 * 3 크기 격자 내에 들어올 수 있는 최대 동전의 수를 출력해주세요
문제 풀이 코드
#include <iostream>
using namespace std;
int arr[21][21] = {};
int getCoinNumber(int row, int col_s, int col_e) {
int num_of_coin = 0;
for (int i = row; i <= row + 2; i++) {
for (int col = col_s; col <= col_e; col++) {
num_of_coin = arr[i][col] + num_of_coin;
}
}
return num_of_coin;
} // 3*3을 탐색하는 함수
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int N, num;
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cin >> num;
arr[i][j] = num;
}
}
int max_of_coin = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i + 2 >= N || j + 2 >= N) {
continue;
}
int num_of_coin = getCoinNumber(i, j, j + 2);
max_of_coin = max(max_of_coin, num_of_coin);
}
}
cout << max_of_coin << "\n";
}
728x90
반응형
'알고리즘 > 문제풀이 (C++,Kotlin)' 카테고리의 다른 글
[프로그래머스/Kotlin] Lv2 튜플 (1) | 2024.11.05 |
---|---|
[CodeTree/C++] 행복한 수열의 개수 : 시뮬레이션 (1) | 2024.02.09 |
[BOJ/C++] 1946번 : 그리디 (0) | 2024.01.31 |
[BOJ/Kotlin] 2240번 자두나무 : DP (0) | 2023.11.14 |
[BOJ/Kotlin] 11659번 구간 합 구하기 4 : 누적합 (0) | 2023.09.20 |