반응형
문제를 풀면 여기에 그냥 코드 업로드만 했는데
내가 푼 문제 다시 들여다보지도 않고
코드 궁금하면 백준사이트에서 다시 볼 수 있는데
코드 업로드하는게 무슨 도움이 되는지 고민이 되기 시작했다
푼 알고리즘?을 정리해서 올리는게 좋은걸까,,, 흠
#include<iostream> using namespace std; int arr[1000][1000] = { 0, }; int arr_tmp[1000][1000] = { 0, }; int M, N; int CountLongestS(int _x, int _y, int _longest) { // _longest가 가능한지 찾는거임! for (int y = (_longest - 1); y > -1; y--) { for (int x = (_longest - 1); x > -1; x--) { if ( _y + y >= M || _x + x >= N) { // 사이즈 넘어가면 여기는안되는거임 return _longest; } if (arr[_y + y][_x + x] != 0) { // 사이즈는 안넘어가지만 장애물이 있어서 안됨 //검사할 필요없는 좌표 표시해주기 arr_tmp[_y + y][_x + x - 1] = 1; return _longest; // 실제 } } } return CountLongestS(_x,_y,_longest + 1); } int main() { cin >> M >> N; for (int y = 0; y < M; y++) { for (int x = 0; x < N; x++) { int tmp; cin >> tmp; arr[y][x] = tmp; arr_tmp[y][x] = tmp; } } int biggist = 0; for (int y = 0; y <= M-biggist; y++) { for (int x = 0; x <= N-biggist; x++) { if (arr_tmp[y][x]==0) { int tmp = CountLongestS(x,y,biggist); if (tmp > biggist) { biggist = tmp; } } } } cout << biggist-1 << endl; return 0; }
반응형