인프런 커뮤니티 질문&답변

조현성님의 프로필 이미지
조현성

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-L

3-L 이렇게 풀면 왜 안될까요?

작성

·

188

0

답변 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점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

조현성님의 프로필 이미지
조현성

작성한 질문수

질문하기