supergravity

파이썬 - 재귀 초과? 왜? 본문

개발중 기억해야 할만한 것들/파이썬

파이썬 - 재귀 초과? 왜?

supergravity 2021. 8. 18. 15:40

초과 할일이 없느데?

 

def solution(game_board, table):
    width = len(table)
    blocks = []
    for i in range(width):
        for j in range(width):
            block = []
            if table[i][j] == 1:
                dfs(table,i,j,block)
                blocks.append(block)
    print(blocks)
    answer = -1
    
    return answer
# make block list
def dfs(table, i, j, block):
    table[i][j] == 0
    block.append((i,j))
    adj_list = adj(table, i, j)
    for adj_ele in adj_list:
        dfs(table, adj_ele[0], adj_ele[1], block)
    
def adj(table,i,j):
    adj_list = []
    width = len(table)
    if i !=0 and table[i-1][j] == 1:
        adj_list.append((i-1,j))
    if i+1 != width and table[i+1][j] == 1:
        adj_list.append((i+1,j))
    if j != 0 and table[i][j-1] == 1:
        adj_list.append((i,j-1))
    if j+1 != width and table[i][j+1]:
        adj_list.append((i,j+1))
    return adj_list

1. 오타 : dfs정의 바로아래 table[i][j] == 0이 아니라 =0

2. 오타 : adj 마지막 if에서 table[i][j+1] == 1이어야함

 

Comments