https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7I5fgqEogDFAXB
풀이
sys.setrecursionlimit(1000000)
# 상하좌우로 갈 수 있는 모든 경로를 6번 이동
def dfs(depth, r, c, str):
# 6번 갔으면, str을 set에 넣어주고 return
if depth == 6:
result.add(str)
return
for di, dj in [[1, 0], [0, 1], [-1, 0], [0, -1]]:
nr, nc = r + di, c + dj
if 0 <= nr < 4 and 0 <= nc < 4:
dfs(depth+1, nr, nc, str + arr[nr][nc])
for tc in range(int(input())):
arr = [list(map(str, input().split())) for _ in range(4)]
result = set()
for i in range(4):
for j in range(4):
dfs(0, i, j, arr[i][j])
print(f'#{tc+1}', len(result))
후기
- 간단한 탐색 문제였다.
- 함수의 매개변수만 잘 정해주면 된다.
'SWEA' 카테고리의 다른 글
SWEA 5209 최소 생산 비용 (파이썬) (0) | 2022.09.27 |
---|---|
SWEA 2105 디저트 카페 (파이썬) (1) | 2022.09.24 |
SWEA 1486 장훈이의 높은 선반 (파이썬) (1) | 2022.09.23 |
SWEA 4366 정식이의 은행업무 (파이썬) (0) | 2022.09.23 |
SWEA 2117 홈 방범 서비스 (파이썬) (0) | 2022.09.16 |