👉 문제 링크
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
result = []
graph = [list(map(str,input().split())) for _ in range(5)]
dx = [1,-1,0,0]
dy = [0,0,1,-1]
def dfs(x,y,num):
num += graph[x][y]
if len(num) == 6:
if num not in result:
result.append(num)
return
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0<=nx<5 and 0<=ny<5:
dfs(nx,ny,num)
for i in range(5):
for j in range(5):
dfs(i,j,"")
print(len(result))
되돌아갈 수 있으므로 방문처리를 하지 않아도 되는 문제
문자로 입력받아서 하나씩 더해가며(이어붙이며) 길이가 6이 되었을 때 result에 삽입
탐색 후, result의 길이가 가능한 경우의 수다.
또한, return을 잊지말것!
함수에서 값을 반환하기 위해 꼭 필요하다.