-
[백준] 2210번 문제 (숫자판 점프) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 23. 15:28
https://www.acmicpc.net/problem/2210
import sys sys.setrecursionlimit(10 ** 7) input = sys.stdin.readline mtx = [list(map(int, input().split())) for _ in range(5)] result = set() def dfs(i, j, ch): if len(ch) == 6: result.add(ch) return if i < 0 or j < 0 or i > 4 or j > 4: return ch += str(mtx[i][j]) dfs(i, j + 1, ch) dfs(i, j - 1, ch) dfs(i + 1, j, ch) dfs(i - 1, j, ch) for i in range(5): for j in range(5): dfs(i, j, "") print(len(result))
result를 set 자료형으로 선언한다.
5 X 5 의 숫자들을 전부 순회하며,
해당 숫자에서 동, 서, 남, 북으로 범위를 넓혀가며 모든 경우의 수를 구한다.
dfs 재귀의 탈출 조건은 숫자 길이가 6이거나, 5 X 5의 좌표를 벗어난 인덱스에 접근했을 때이다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1753번 문제 (최단경로) 파이썬(Python) 풀이 (0) 2021.10.12 [백준] 1932번 문제 (정수 삼각형) 파이썬(Python) 풀이 (0) 2021.10.04 [백준] 10988번 문제 (팰린드롬인지 확인하기) 파이썬(Python) 풀이 (0) 2021.09.23 [백준] 17608번 문제 (막대기) 파이썬(Python) 풀이 (0) 2021.09.15 [백준] 10026번 문제 (적록색약) 파이썬(Python) 풀이 (0) 2021.09.15