문제링크: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가 찍히는 이유가 뭘까요 부탁드립니다 ..
list가 한번 들어가면 못나와서 그럴듯
아..이해햇습니다
그 이전에 탐색햇던 결과가 이후에도 영향을 끼치는거같은데 어케고쳐야할까요
리스트 초기화 안하는거 같은데