PS
[Progammers] Python 프로그래머스 모음사전(84512)
1223v
2024. 11. 3. 18:31
https://school.programmers.co.kr/learn/courses/30/lessons/84512
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
해시와 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를 더욱 원활하게 사용할 수 있도록 해시를 더 다듬을 필요가 있어보임
728x90