문제링크:https://www.acmicpc.net/problem/1987

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
       
   
    static int r,c;
    static int dr[]= {-1,1,0,0};
    static int dc[]= {0,0,-1,1};
    static char map[][];
    static int visit[][];
    static ArrayList<Character>list;
    public static void main(String[] args) {
       
        Scanner sc = new Scanner(System.in);
       
        r = sc.nextInt();
        c= sc.nextInt();
        list = new ArrayList<>();
       
        sc.nextLine();
        map=new char[r][c];
        visit=new int[r][c];
        for(int i=0;i<r;i++) {
            for(int j=0;j<c;j++) {
                visit[i][j]=1;
            }
        }
       
        for(int i=0;i<r;i++) {
            String s =sc.nextLine();
            for(int j=0;j<c;j++) {
                map[i][j]=s.charAt(j);
            }
        }
        dfs(0,0);
       
        int result=0;
       
        for(int i=0;i<r;i++) {
            for(int j=0;j<c;j++) {
                result=Math.max(result,visit[i][j]);
            }
        }
       
        System.out.println(result);

    }
    static void dfs(int row,int col) {
        list.add(map[row][col]);
       
        for(int i=0;i<4;i++) {
            int nr = row+dr[i];
            int nc= col+dc[i];
           
        if(nr>=0&&nc>=0&&nr<r&&nc<c) {
            if(!list.contains(map[nr][nc])) {
                visit[nr][nc]=visit[row][col]+1;
                dfs(nr,nc);
            }
        }
        }
       
       
    }

}

문제링크:https://www.acmicpc.net/problem/1987

예제1,2번은 잘찍히는데 예제3번이 10이 아니라 4가 찍히는 이유가 뭘까요 부탁드립니다 ..