[BOJ/Python] 2210 : 숫자판 점프

정나영·2023년 8월 11일
0

👉 문제 링크

👉 전체 코드

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을 잊지말것!
함수에서 값을 반환하기 위해 꼭 필요하다.

0개의 댓글