10jobss   6년 전

10% 정도에서 틀렸습니다를 받았습니다.
로직은 다음과 같습니다.
 1. 섬끼리 그룹번호 부여

    (이 때 섬의 한개 좌표를 q_start에 push해 주었습니다. 함수 종료 후 섬의 dist[i][j]값은 0으로 바다의 dist[i][j]값은 -1인 상태입니다.)

2. bfs를 통해 각 그룹 번호로 섬의 영역을 확장

    다음 영역이 바다가 아니면서 그룹번호가 다른경우 ans에 거리를 넣었습니다. (각 섬 영역이 치우치게? 시작하는 경우를 고려해서 바로 return 하지 않았습니다)

잘못된 부분 혹은 반례 부탁드립니다.

atomzeno   6년 전

10
1 1 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 1 0 1 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0

답:3

출력:4

코드 읽기 구찮아서 반례 몇개 넣어봄 ㅎㅎ 7행 3열 1 지웠다 넣으면 답이 2 뛰는걸 볼수 있음 

10jobss   6년 전

@atomzeno

반례 감사합니다. 제 코드가 BFS가 아닌? BFS였군요.

해결했습니다!

댓글을 작성하려면 로그인해야 합니다.