- 문제 링크: https://leetcode.com/problems/all-paths-from-source-to-target/

 

BFS나 DFS로 경로를 찍으면 됩니다. 뭐 어렵지 않습니다.... Medium 이라고 되어 있지만 Easy라고 해도 무방할 듯 합니다.

그런데 이번에 하나 알게된 것이, 파이썬에서는 list를 assign하면 카피되는게 아니고 레퍼런스만 복사되네요? 그래서 slicing(shallow copy) 또는 copy.deepcopy() 뭐 이런걸 써야 한다고 하네요.

음... 알수록 어렵습니다. 파이썬.. 언제 봐도 새롭습니다.

class Solution(object):
    def allPathsSourceTarget(self, graph):
        ret = []
        last = len(graph)-1
        queue = [(0, [])]
        while queue:
            (current, visited) = queue.pop(0)
            visited.append(current)

            if current == last:
                ret.append(visited)
                continue

            for nxt in graph[current]:
                tmp = [elem for elem in visited]
                queue.append((nxt, tmp))

        return ret

 

반응형