JUMPGAME 런타임에러 질문있습니다.

  • juhyun16
    juhyun16

    안녕하세요 jumpgame 문제를 풀고 있습니다.
    이클립스에서 잘 돌아가고 worst case를 만들어보아도 일단 정상적으로 출력되었습니다. 그런데 서버로 정답을 제출하니 RTE 에러(nonzero return code)가 발생하였습니다.
    어떤 문제인지 한번 검토해주실 수 있나요???
    감사합니다. 좋은하루 되세요~


    import java.util.Scanner;
    import java.io.FileReader;
    import java.io.BufferedReader;
    import java.io.IOException;

    public class Main {
    static int Matrix[][];
    static int ret=0;
    static int cache[][];
    static int Jump(int row, int col)
    {
    if(row>=Matrix.length || col>=Matrix.length)
    return 0;
    if(row==(Matrix.length-1) && col==(Matrix.length-1))
    {
    cache[row][col] = 1;
    return 1;
    }
    //return 1;

    ret = cache[row][col];
        if(ret!=-1)
            return ret;
    
        int JumpSize = Matrix[row][col];
        //if(Jump(row+JumpSize, col) || Jump(row, col+JumpSize))
        //  ret =
        if(Jump(row+JumpSize, col)==1)
        {
            cache[row][col] = 1;
            return 1;
        }
            //return 1;
        else
        {
            if(Jump(row, col+JumpSize)==1)
            {
                cache[row][col] = 1;
                return 1;
            }
                //return 1;
        }
    
        cache[row][col] = 0;
        return 0;
    }
    static void initializeCache(int board[][])
    {
        for(int i=0; i<board.length; i++)
        {
            for(int j=0; j<board.length; j++)
                board[i][j] = -1;
        }
    }
    public static void main(String args[]) throws IOException
    {
        //Scanner sc = new Scanner(new BufferedReader(new FileReader("input.txt")));
        Scanner sc = new Scanner(System.in);
        int n=0;
        int noOftest = sc.nextInt();
        sc.nextLine();
        for(int i=0; i<noOftest; i++)
        {
            n=sc.nextInt();
            sc.nextLine();
            Matrix = new int[n][n];
            cache = new int[n][n];
            initializeCache(cache);
            for(int j=0; j<n; j++)
            {
                for(int k=0; k<n; k++)
                    Matrix[j][k] = sc.nextInt();
    
                sc.nextLine();
            }
    
            if(Jump(0, 0) == 1)
                System.out.println("YES");
            else
                System.out.println("NO");
    
        }
        sc.close();
    }

    }


    9년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    sc.nextLine(); 들을 전부 지우면 맞는 것 같네요. 마지막 입력 후에 빈줄이 없어서 nextLine()에서 오류가 납니다.

    (공백을 포함한 문자열 입력을 받지 않으시는 경우 이런 입력을 쓰시는것은 오류의 지름길입니다.)


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.