[알고리즘/백준] 2210번 : 숫자판 점프(python)

모든 경우를 다 탐색해야 한다. 재귀를 이용하여 나오는 수들을 set에 넣으면 중복이 제거된다.

def dfs(i, j, k):
    if len(k) == 6:
        ans.add(k)
        return
    if i < 0 or j < 0 or i > 4 or j > 4:
        return
    k += str(a[i][j])

    dfs(i, j + 1, k)
    dfs(i, j - 1, k)
    dfs(i + 1, j, k)
    dfs(i - 1, j, k)


a = [list(map(int, input().split())) for _ in range(5)]
ans = set()

for i in range(5):
    for j in range(5):
        dfs(i, j, "")
print(len(ans))

좋은 웹페이지 즐겨찾기