백준 2210.py
answer_set = set()
graph = [list(input().split()) for _ in range(5)]
def finder(i,j, answer):
if len(answer) == 6:
answer_set.add(answer)
return
dx = [-1,0,0,1]
dy = [0,-1,1,0]
for idx in range(4):
x = i + dx[idx]
y = j + dy[idx]
if 0 <= x < 5 and 0 <= y < 5:
finder(x,y, answer + graph[x][y])
for i in range(5):
for j in range(5):
cnt = 1
finder(i,j,graph[i][j])
print(len(answer_set))
위의 식을 보면 answer + graph[x][y]로 바로 받아서 파라미터로 넘겨준다. 더하기 연산을 재귀 바로 위에서 변수에 담아서 값을 넘겨주면 재귀를 당한 함수 내부에서는 잘 전달 되지만 return을 하게 되면 answer의 값이 변화된 상태로 식이 진행이 되면서 원하는 값이 안나온다.