kce0206   5년 전

휴..연습하면 정말 실력이 늘까요..

이렇게 반례없이 잘못된걸 찾는게 잘 안되네요ㅠㅠ

evenharder   5년 전

함수 bridge_bfs_에서 인접한 칸에 0이 있으면 외곽이라고 생각하셔서 바깥에 return value를 설정하지 않으신 것 같은데, 0이 있다고 반드시 외곽은 아닙니다.

반례는 다음과 같습니다.

1 1 1 1

1 1 0 1

1 0 0 1

1 1 1 1

C++ 함수에서 return value가 정해지지 않으면 undefined behavior가 되어 아무 값이나 반환될 수 있기 때문에 틀렸습니다가 나올 수 있습니다.

함수 bridge_bfs_ 맨 마지막에 return 9999;를 추가해보세요.

kce0206   5년 전

return 9999를 추가하니 패스 뜨네요!!정말 감사합니다~~~ㅎㅎㅎ

아 그런데 반례는 섬이 하나인 경우 아닌가요..?문제에서 섬이 최소 2개는 주어진다고 하길래 저 경우를 제외하긴 했는데..

evenharder   5년 전

반례라고 한 게 테스트 케이스에 해당하는 반례가 아니라 0이 인접해 있어도 외곽이 아닐 수 있다에 해당하는 반례라는 뜻입니다.

고생하셨습니다!!

rksidksrksi   10달 전

0이 인접해도 외곽이 아닐 수 있다니... 오래된 글이지만 감사합니다. 저를 살리셨습니다.

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