[김태원 알고리즘] 알파코드 (DFS)
사용 언어: Python3
문제
풀이
def DFS(L, pos):
global cnt
if L == N:
cnt += 1
print(''.join(chr(res[i] + 64) for i in range(pos)))
# for i in range(pos):
# print(chr(res[i]+64), end ='')
# print()
else:
for i in range(1, 27):
if letters[L] == i: # ✅ 한자리 확인
res[pos] = i
DFS(L+1, pos+1) # ✅ 한 칸 건너뛰기
elif i >= 10 and letters[L] == i//10 and letters[L+1] == i%10: # ✅ 두자리 확인
res[pos] = i
DFS(L+2, pos+1) # ✅ 두 칸 건너뛰기
letters = list(map(int, input()))
N = len(letters)
letters.insert(N, -1) # ✅ 두 자리 수 비교할 때 맨 마지막 out of index 방지
cnt = 0
res = [0] * (N+3) # 결과 (ex. [25, 11, 4])
DFS(0, 0)
print(cnt)
💛 개인 공부 기록용 블로그입니다. 👻