위 코드에 bfs() 부분을
def bfs(start): q = deque() q.append(start) visited = [-1 for _ in range(n+1)] visited[start] += 1 result = [] while q: pop_data = q.popleft() if visited[pop_data] == k: result.append(pop_data) if visited[pop_data] < k: for i in data[pop_data]: if visited[i] == -1: q.append(i) visited[i] = visited[pop_data] + 1 return result
이렇게 바꾸었더니 정답이 나왔습니다.
원래 코드는 왜 안되는지 잘 모르겠습니다...
어떤 반례가 있을까요 ㅠ
cndqjacndqja 3년 전
제출한 코드가 90프로 쯤에서 틀렸다고 나옵니다.
다른 블로그에 나온 코드와 차이를 보니, visited에 거리를 계산하는 차이가 있었습니다.
전 q에 탐색 중인 노드와 해당 노드까지의 거리를 삽입하며 거리를 계산하였습니다.
거리를 구하는 방식에서 차이가 있었으니, 이 부분에 문제가 있을까 싶은데 아직까지 어떤 부분이 문제인지 모르겠습니다.