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))
결과

초기화 위치가 새삼 중요하다는 것을 느꼈다...ㅎㅎ 미량이 코드보고 위치 수정해서 성공! 그래도 알고리즘 로직은 맞았으니까 좀 더 익숙하도록 문제만 많이 풀어보면 좋을 것 같다.
'스터디 1일 1커밋' 카테고리의 다른 글
| 240613 [BOJ/백준] 2992. 크면서 작은 수 (0) | 2024.06.13 |
|---|---|
| 240611 [BOJ/백준] 1021. 회전하는 큐 (0) | 2024.06.11 |
| 240610 [BOJ/백준] 1912. 연속합 (0) | 2024.06.10 |
| 240531 [BOJ/백준] 1149. RGB거리 (0) | 2024.05.31 |
| 240530 [BOJ/백준] 15663. N과 M(9) (0) | 2024.05.30 |