답변 1
0
안녕하세요 현성님 ㅎㅎ
void go(int y, int x){
for(int i=0;i<4;i++){
int ny = y+dy[i];
int nx = x+dx[i];
if(ny<0||nx<0||ny>=r||nx>=c||visited[a[ny][nx]-'A'])continue;
visited[a[ny][nx]-'A']=visited[a[y][x]-'A']+1;
ret=max(ret,visited[a[ny][nx]-'A']);
지금 이 코드를 보면...
방문배열에 최단거리를 담는 것 처럼 보이는데요.
이문제는
최대의 칸이지.
최단거리를 구하는 문제가 아닙니다.
즉, 모든 경우의 수중 "최대치"를 찾아야 합니다.
BFS : 가중치가 같은 그래프 내에서 최단거리, 갈 수 있는 최소의 거리 라는 워딩이 나왔을 때 쓰셔야 합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.