PS
[Progammers] Python 프로그래머스 모음사전(84512)
1223v
2024. 11. 3. 18:31
https://school.programmers.co.kr/learn/courses/30/lessons/84512
해시와 dfs를 조합하는 백트래킹 문제이다.
문자열을 해시로 저장하여 만약 해당 문자열이 있는 경우 방문처리를 하여 조건에 걸리지 않도록 중복없는 완전탐색을 진행
cnt = 0
result = 0
text = ""
s_dict = {}
def dfs(n, s):
global cnt, result, text
if s == text:
result = cnt
return
if len(s) == 5:
return
elif result == 0:
for i in ["A", "E", "I", "O", "U"]:
if s+i not in s_dict:
s_dict[s+i] = 1
cnt += 1
dfs(n + 1, s + i)
def solution(word):
global text
text = word
dfs(0,"")
return result
회고.
딕셔너리와 defaultdict를 더욱 원활하게 사용할 수 있도록 해시를 더 다듬을 필요가 있어보임