작성한 질문수
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S
작성
·
110
0
안녕하세요 선생님 수업 잘 듣고 있습니다.
제가 어떠한 grid를 인풋으로 받아 dfs 혹은 bfs를 할때 visited를 사용하는 이유는 이해를 하고있습니다. 그런데 이번 문제의 경우 어느 상황에서 visited가 사용되는지 이해가 되지 않습니다. 제 생각에는 한번 들어간 노드에는 그에 따른 하위 노드로 넘어갈뿐 똑같은 노드에 들어가는 상황이 없다고 생각됩니다.
어떠한 상황에서 visited가 사용되는지 궁금합니다. 감사합니다
답변 2
a b c 3개의 컴퓨터가 있을 때 a 가 b 를 신뢰하고 b 가 c를 신뢰하고 c 가 a를 신뢰 하는 구조가 있을 수 있기 때문에, visited 넣어야 합니다!!
안녕하세요 ㅎㅎ
제 생각에는 한번 들어간 노드에는 그에 따른 하위 노드로 넘어갈뿐 똑같은 노드에 들어가는 상황이 없다고 생각됩니다.
>> 네 정확합니다. 양방향 간선이 아니고 해당 경우에 visited를 안 써도 됩니다. 보통 tree의 경우 visited 없이 하기도 합니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
http://boj.kr/b10ed1663db043cf97eafad67bc56f20
선생님 해당 코드를 보시면 시간 초과로 통과가 되지 않습니다. 하지만 제가 주석처리한 부분들을 주석처리를 해제하여 visited처리를 하면 시간초과가 나지 않고 통과 됩니다. 그 이유는 뭘까요?
이 문제의 경우에는 visited 걸어줘야 합니다.
이 문제 자체가 트리라고 명시가 되어있지도 않고 양방향 간선이 생길수도 있습니다.
http://boj.kr/b10ed1663db043cf97eafad67bc56f20
선생님 해당 코드를 보시면 시간 초과로 통과가 되지 않습니다. 하지만 제가 주석처리한 부분들을 주석처리를 해제하여 visited처리를 하면 시간초과가 나지 않고 통과 됩니다. 그 이유는 뭘까요?