[백준] 1189 - 컴백홈

2024. 6. 26. 17:11PS/백준

728x90

문제 링크

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

느낀 점

기본적인 구현 문제를 많이 연습해야한다는 것을 느꼈음. 그리고 지나가면서 올렸던 숫자를 모두 제자리로 원상 복구 시켜줘야 다른 경우에서도 쓸 수 있으므로 그 과정을 신경 써주어야했음!

import sys
sys.setrecursionlimit(12345678)
R, C, K = map(int, sys.stdin.readline().split())
count = 0
maps = []
for _ in range(R):
    maps.append(list(sys.stdin.readline().strip()))
d = [(-1, 0), (0, -1), (0, 1), (1, 0)]
maps[R-1][0] = 1
def dfs(i, j):
    global count
    if i == 0 and j == C-1:
        if maps[i][j] == K:
            count += 1
        return
    for di, dj in d:
        ui = i + di
        uj = j + dj
        if ui >= 0 and uj >= 0 and ui < R and uj < C:
            if maps[ui][uj] == '.':
                maps[ui][uj] = maps[i][j] + 1
                dfs(ui, uj)
                maps[ui][uj] = '.'
dfs(R-1, 0)
print(count)

'PS > 백준' 카테고리의 다른 글

[백준] 2644 - 촌수계산  (0) 2024.06.26
[백준] 2606 - 바이러스  (0) 2024.06.26
[백준] 24480 - 깊이 우선 탐색 2  (0) 2024.06.26
[백준] 24479 - 깊이 우선 탐색 1  (0) 2024.06.26
[백준] 24445 - 너비 우선 탐색 2  (0) 2024.06.26