https://www.acmicpc.net/problem/2210
arr = []
numbers= []
for i in range(5):
a = list(map(str,input().split()))
arr.append(a)
dx = [0,0,1,-1]
dy = [-1,1,0,0]
def dfs(x,y,string):
if len(string) == 6:
if string not in numbers:
numbers.append(string)
return
for i in range(4):
nx = dx[i] + x
ny = dy[i] + y
if (0 <= nx < 5) and (0 <= ny < 5):
dfs(nx,ny,string + arr[nx][ny])
for i in range(5):
for j in range(5):
dfs(i,j,arr[i][j])
print(len(numbers))
전형적인 dfs 알고리즘 문제이다.
'알고리즘' 카테고리의 다른 글
백준) 나이트의 이동 (0) | 2023.02.21 |
---|---|
백준) 나이트의 이동 (0) | 2023.02.21 |
프로그래머스) 둘만의 암호 (0) | 2023.02.21 |
프로그래머스)무인도 여행 (0) | 2023.02.21 |
백준)Hello World! (0) | 2023.02.20 |