현제의 현재이야기

<2022모각코/TIL> [백준/python] 2210 - 숫자판 점프 본문

algorithm/HUFS 2022 하계 모각코

<2022모각코/TIL> [백준/python] 2210 - 숫자판 점프

현재의 현제 2022. 8. 14. 00:09
import sys
sys.setrecursionlimit(10**6)

input = sys.stdin.readline

graph = []
for _ in range(5):
    arr = list(map(int, input().split()))
    graph.append(arr)

result_set = set()

def dfs(i, j, result):
    result += str(graph[i][j])
    if len(result) == 6:
        result_set.add(result)
        return
    dx, dy = [1, 0, -1, 0], [0, -1, 0, 1]
    for d in range(4):
        x = i + dx[d]
        y = j + dy[d]
        if 0 <= x <= 4 and 0 <= y <= 4:
            dfs(x, y, result)


for i in range(5):
    for j in range(5):
        dfs(i, j, '')

print(len(result_set))

알고리즘:

  1. (0,0) 부터 (4,4)까지 차례대로 dfs에 삽입
  2. result는 str로 바꾸어서 해당 좌표의 값을 붙임
  3. 만약 문자열의 길이가 6개가 되면 집합인 result_set에 add
  4. 그리고 dfs 함수에 받은 i j 에 dx dy값을 더해서 0보다 크고 4보다 작으면 다시 dfs에 삽입

열심히 하자 dfs !!

Comments