개발자

[파이썬] 알고리즘 질문

2022년 08월 26일조회 380

먼저 input 값은 n = 3, edges = [[0,1],[1,2],[2,0]], source = 2, destination = 2 입니다. 저 코드 그대로 idle에서 print(dfs)하면 True가 나오는데 leetcode에서 돌리면 False가 나옵니다.. 왜 그러는지 알 수 있을까요? ㅠㅠㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

문승욱(카이론)님의 프로필 사진

제가 파이썬을 해보진 않아서 잘은 모르겠습니다만. 요런 부분이 문제될 수 있을듯 합니다. dictionary 를 생성할때 collections.defaultdic(list)로 하셨기 때문에 딕셔너리의 value에는 list가 들어갑니다. 즉 discovered.append 할때 i 가 int가 아니라 list라는 소리지요 근데, if y in discovered 할 때 discovered에는 리스트 즉 [[0], [1], [2]] 형태로 되어있어서 int 값인 y와 맞지 않아서 false가 난것으로 예측됩니다. 따라서 collection.defaultdic(int)로 바꾸고 딕셔너리 세팅부분도 dic[v[0]] = v[1] 로 바꾸시면 되지 않을까 생각해봅니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!