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

조현성님의 프로필 이미지

작성한 질문수

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

3-D와 반례

3-D q에 fire 거리 부분

23.09.28 16:01 작성

·

209

·

수정됨

0

fire_check[ny][nx]!=INF면 continue잖아요

ny nx에 값(!INF인값)이 이미 존재하는데 불이 여러개라

fire_check[ny][nx]>fire_check[y][x]+1 인 경우의수는 생길 수 있는데 bfs라 이럴 경우가 안생겨서 굳이 비교 할 필요 없게되나요? 질문이 좀 그런가요 ㅠㅠ

답변 2

1

큰돌님의 프로필 이미지
큰돌
지식공유자

2023. 09. 30. 09:10

안녕하세요 현성님 ㅎㅎ

fire_check[ny][nx]!=INF면 continue잖아요

>> 처음 불의 값으로 INF 초기화했는데 불로부터 BFS를 진행할 경우 해당 배열에 값이 생긴 경우 continue입니다.

 

fire_check[ny][nx]>fire_check[y][x]+1 인 경우의수는 생길 수 있는데 bfs라 이럴 경우가 안생겨서 굳이 비교 할 필요 없게되나요?

>> 그런 경우가 생깁니다.

F..

이럴경우

1 INF INF

에서

1 2 INF

등으로 INF가 아닌 값으로 초기화되면서 전진하게 됩니다.

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


0

조현성님의 프로필 이미지
조현성
질문자

2023. 10. 05. 14:12

1 3 INF 일때 1 2 INF 이렇게 바뀌는게 아닌가 여쭤본거입니다 이런 경우는 없나요?

큰돌님의 프로필 이미지
큰돌
지식공유자

2023. 10. 06. 10:53

애초에 1 3 INF는 존재하지 않습니다.

또한 BFS는 방문한 정점은 다시 방문하지 않기 때문에

이미 1 2 이렇게 갱신되어있는 정점을 다시 바꾸는 일은 일어나지 않습니다.