lsy980124   6년 전

Search함수와 같은 원리로 c에서 작성했을때는 채점이 맞았습니다...

c#으로 채점했을땐 런타임 에러가 떳구요.
(서로 다른 두 알고리즘으로 하나는 c#에서, 하나는 c에서 돌렸고 둘다 마찬가지였습니다. 짧은 알고리즘으로 짠것만 올렸습니다. 혹시몰라서 c코드도 첨부합니다)



#include <stdio.h>

int Dp[505][505];
int position[5][5] = {{1,0},{-1,0},{0,1},{0,-1}};
int map[505][505];
int M, N;

int func(int y, int x)
{
    if (y == 0 && x == 0)
    {
        //return Dp[y][x];
        return 1;
    }
    else if (Dp[y][x] > -1)
    {
        return Dp[y][x];
    }
    Dp[y][x] = 0;
    for (int i = 0; i < 4; i++)
    {
        if (y + position[i][0] >= 0 && y + position[i][0] < M && x + position[i][1] >= 0 && x + position[i][1] < N && maze[y + position[i][0]][x + position[i][1]] > maze[y][x])
        {
            Dp[y][x] += func(y + position[i][0], x + position[i][1]);
        }
    }

    return Dp[y][x];
}
int main()
{
    scanf("%d%d", &M, &N);
    for (int i = 0; i < M; i++)
    {
        for (int j = 0; j < N; j++)
        {
            scanf("%d", &map[i][j]);
            Dp[i][j] = -1;
        }
    }

    printf("%d", func(M - 1, N - 1));

    return 0;
}


댓글을 작성하려면 로그인해야 합니다.