728x90
반응형
SMALL
✏️ 문제
문제 파악
처음에 DFS 함수를 얼마나..? 돌려야할 지 몰라서 해멨다... 그냥 각 위치에서 한번씩만 돌리면 되는 거 였삼.. 씁
그리고 첨에 for (배열명) in (변수) 를 사용해서 중복 방지를 하려고 했는데 set() 이라는 자동으로 중복은 저장이 안되는 아주 좋은 집합 자료형이 있다! (뒤늦게 기억난 건 비밀)
알고리즘
- 그래프 이론
- 그래프 탐색
- 깊이 우선 탐색
- 브루트포스 알고리즘
코드
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10**6)
graph = [list(map(int, input().split())) for _ in range(5)]
d = [(1, 0), (0, 1), (0, -1), (-1, 0)]
nums = set() # 중복을 방지하기 위해 set 사용
def dfs(x, y, num):
if len(num) == 6:
nums.add(num)
return
for i in range(4):
dx = x + d[i][0]
dy = y + d[i][1]
if 0 <= dx < 5 and 0 <= dy < 5:
dfs(dx, dy, num + str(graph[dx][dy]))
for i in range(5):
for j in range(5):
dfs(i, j, str(graph[i][j]))
print(len(nums))
⭐️ DFS와 BFS에 대해서 아직 잘 모른다면?
728x90
반응형
LIST
'PS > 백준' 카테고리의 다른 글
[Python] 6118번 숨바꼭질 (2) | 2024.09.05 |
---|---|
[Python] 13565번 침투 (0) | 2024.09.05 |
[Python] 1189번 컴백홈 (4) | 2024.09.02 |
[Python] 15900번 나무 탈출 (0) | 2024.08.31 |
[Python] 24479번 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2024.08.31 |