반응형
-문제
-코드
#include<stdio.h>
#include<algorithm>
using namespace std;
int dx[4] = { 1,0,-1,0 };
int dy[4] = { 0,1,0,-1 };
int map[500][500], dp[500][500];
int n, res;
int DFS(int x, int y)
{
if (dp[x][y] > 0) return dp[x][y];
else
{
dp[x][y] = 1;
for (int i = 0; i < 4; i++)
{
int xx = x + dx[i];
int yy = y + dy[i];
if (xx < 0 || yy < 0 || xx >= n || yy >= n) continue;
if (map[x][y] < map[xx][yy])
{
dp[x][y] = max(dp[x][y], DFS(xx, yy) + 1);
}
}
}
return dp[x][y];
}
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &map[i][j]);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
res = max(res, DFS(i, j));
}
}
printf("%d", res);
return 0;
}
반응형
'이론 > 코딩테스트' 카테고리의 다른 글
[백준] 1541번 잃어버린 괄호 (문자열) (0) | 2022.08.03 |
---|---|
[백준] 2675번 문자열 반복 (문자열) (0) | 2022.08.03 |
[백준] 11279번 최대힙 (priority queue) (0) | 2022.08.01 |
[백준] 1158번 요세푸스 문제 (queue) (0) | 2022.08.01 |
[백준] 8958번 ox퀴즈 (문자열) (0) | 2022.07.31 |