본문 바로가기

스터디 1일 1커밋

240611 [BOJ/백준] 2210. 숫자판 점프

 

https://www.acmicpc.net/problem/2210


나의 코드

import sys
sys.setrecursionlimit(10**6)

def dfs(si, sj):
    global ans, num6

    if len(num6) == 6:
        ans.add(num6)
        return

    for k in range(4):
        ni = si + di[k]
        nj = sj + dj[k]

        if 0 <= ni < 5 and 0 <= nj < 5:
            num6 += arr[ni][nj]
            dfs(ni, nj)
            num6 = num6[:-1]

arr = [input().split() for _ in range(5)]

ans = set()
di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]

for i in range(5):
    for j in range(5):
        num6 = ''
        num6 += arr[i][j]
        dfs(i, j)

print(len(ans))

 

결과


초기화 위치가 새삼 중요하다는 것을 느꼈다...ㅎㅎ 미량이 코드보고 위치 수정해서 성공! 그래도 알고리즘 로직은 맞았으니까 좀 더 익숙하도록 문제만 많이 풀어보면 좋을 것 같다.