- toc {:toc}
๐ฆ14500: ํ ํธ๋ก๋ฏธ๋ ธ
[์๊ณ ๋ฆฌ์ฆ ํ์ด] ๊ฐ๋๊ท Reviewed by Kade Kang (devkade12@gmail.com) Reviewed:: 2024-02-06 ๋ฌธ์ ํ์ธํ๊ธฐ
ํ์ด
- ํ ํธ๋ก๋ฏธ๋ ธ๊ฐ ๋์นญ, ํ์ ํ์ฌ ๋์ฌ ์ ์๋ ์ผ์ด์ค๋ฅผ ๋๋์ด ์ ์ฉ์์ผฐ๋ค.
- ์ด 19๊ฐ์ง ๋ฐฉ์์ผ๋ก, ๊ธฐ์ค์ ์์ ์ด๋ํ๋ ํฝ์ ๋ณํ๋์ blocks์ ์ ์ฅํ๋ค.
- ์ดํ, ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ชจ๋ ํฝ์ ์ ๋๋ฉด์ 19๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๋ค.
- ์ด๋, board๋ฅผ ๋์ด์๋ ๊ฒฝ์ฐ๋ ์ฒดํฌํ์ง ์๊ณ ๋์ด๊ฐ๋ค.
#include <iostream>
#define endl '\n'
#define X first
#define Y second
using namespace std;
int n, m, board[505][505] = {};
int blocks[19][4][2] = {
{ {0, 0}, {0, 1}, {0, 2}, {0, 3}} ,
{ {0, 0}, {1, 0}, {2, 0}, {3, 0}} ,
{ {0, 0}, {1, 0}, {0, 1}, {1, 1}} ,
{ {0, 0}, {1, 0}, {2, 0}, {2, 1} },
{ {0, 0}, {0, 1}, {0, 2}, {-1, 2} },
{ {0, 0}, {0, 1}, {1, 1}, {2, 1} },
{ {0, 0}, {1, 0}, {0, 1}, {0, 2} },
{ {0, 0}, {1, 0}, {2, 0}, {2, -1} },
{ {0, 0}, {1, 0}, {1, 1}, {1, 2} },
{ {0, 0}, {0, 1}, {1, 0}, {2, 0} },
{ {0, 0}, {0, 1}, {0, 2}, {1, 2} },
{ {0, 0}, {1, 0}, {1, 1}, {2, 1} },
{ {0, 0}, {0, 1}, {-1, 1}, {-1, 2} },
{ {0, 0}, {1, 0}, {1, -1}, {2, -1} },
{ {0, 0}, {0, 1}, {1, 1}, {1, 2} },
{ {0, 0}, {0, 1}, {1, 1}, {0, 2} },
{ {0, 0}, {0, 1}, {-1, 1}, {1, 1} },
{ {0, 0}, {1, 0}, {1, -1}, {1, 1} },
{ {0, 0}, {1, 0}, {1, 1}, {2, 0} },
};
void Input(){
cin >> n >> m;
for(int row = 0; row < n; row++){
for(int col = 0; col < m; col++){
cin >> board[row][col];
}
}
}
bool is_inside(int row, int col){
if (row < 0 || row >= n || col < 0 || col >= m) return false;
return true;
}
int tetromino(){
int max = 0;
for(int row = 0; row < n; row++){
for(int col = 0; col < m; col++){
int temp = 0;
for(int i = 0; i < 19; i++){
if (!is_inside(row+blocks[i][2][0], col+blocks[i][2][1]) || !is_inside(row+blocks[i][3][0], col+blocks[i][3][1])) continue;
temp = board[row+blocks[i][0][0]][col+blocks[i][0][1]] + board[row+blocks[i][1][0]][col+blocks[i][1][1]] + \
board[row+blocks[i][2][0]][col+blocks[i][2][1]] + board[row+blocks[i][3][0]][col+blocks[i][3][1]];
if (temp > max) max = temp;
}
}
}
return max;
}
void Solution(){
int max;
max = tetromino();
cout << max << endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
Input();
Solution();
return 0;
}