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

kkim360님의 프로필 이미지
kkim360

작성한 질문수

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

2-S

2 - S visited 사용 질문입니다

작성

·

110

0

안녕하세요 선생님 수업 잘 듣고 있습니다.

제가 어떠한 grid를 인풋으로 받아 dfs 혹은 bfs를 할때 visited를 사용하는 이유는 이해를 하고있습니다. 그런데 이번 문제의 경우 어느 상황에서 visited가 사용되는지 이해가 되지 않습니다. 제 생각에는 한번 들어간 노드에는 그에 따른 하위 노드로 넘어갈뿐 똑같은 노드에 들어가는 상황이 없다고 생각됩니다.

어떠한 상황에서 visited가 사용되는지 궁금합니다. 감사합니다

답변 2

0

a b c 3개의 컴퓨터가 있을 때 a 가 b 를 신뢰하고 b 가 c를 신뢰하고 c 가 a를 신뢰 하는 구조가 있을 수 있기 때문에, visited 넣어야 합니다!!

0

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

안녕하세요 ㅎㅎ

제 생각에는 한번 들어간 노드에는 그에 따른 하위 노드로 넘어갈뿐 똑같은 노드에 들어가는 상황이 없다고 생각됩니다.

>> 네 정확합니다. 양방향 간선이 아니고 해당 경우에 visited를 안 써도 됩니다. 보통 tree의 경우 visited 없이 하기도 합니다.



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

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

감사합니다.

강사 큰돌 올림.


kkim360님의 프로필 이미지
kkim360
질문자

http://boj.kr/b10ed1663db043cf97eafad67bc56f20

선생님 해당 코드를 보시면 시간 초과로 통과가 되지 않습니다. 하지만 제가 주석처리한 부분들을 주석처리를 해제하여 visited처리를 하면 시간초과가 나지 않고 통과 됩니다. 그 이유는 뭘까요?

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

이 문제의 경우에는 visited 걸어줘야 합니다.

이 문제 자체가 트리라고 명시가 되어있지도 않고 양방향 간선이 생길수도 있습니다.

kkim360님의 프로필 이미지
kkim360

작성한 질문수

질문하기