Snakes and Ladders: The Quickest Way Up

  • + 0 comments
    def quickestWayUp(ladders, snakes):
        # Write your code here
        temp = {}
        for a, b in ladders + snakes:
            temp[a] = b
        
        queue = deque()
        queue.append((1, 0))
        visited = set()
        visited.add(1)
        
        while len(queue) > 0:
            current, roll_count = queue.popleft()
            if current == 100:
                return roll_count
                
            for i in range(1, 7):
                next_pos = current + i
                next_pos = temp.get(next_pos, next_pos)
                if next_pos not in visited:
                    queue.append((next_pos, roll_count+1))
                    visited.add(next_pos)
        return -1