단어변환
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 내 풀이
- 백트래킹
- 예외사항 주의할 것!
처음에 한글자씩 비교 확인 안하고 아래와 같은 코드를 넣었는데
if len(set(cur+next))!=len(target)+1: #한글자 차이가 아니면 continue-> "aab", "aba"와 같이 중복된 글자가 다른글자일 경우를 제외해버림
answer = 10000
def solution(begin, target, words):
visited=[False for _ in range(len(words))]
def recur(cur, target,cnt):
global answer
if cur==target:
answer=min(answer,cnt)
return
for idx, next in enumerate(words):
if visited[idx]==True:
continue
# if len(set(cur+next))!=len(target)+1: #한글자 차이가 아니면
# continue
flag=0
for aval,bval in zip(cur,next):
if aval!=bval:
flag+=1
if flag>1:
continue
visited[idx]=True
recur(next, target, cnt+1)
visited[idx]=False
recur(begin, target, 0)
if answer==10000:
return 0
else:
return answer
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][구현] 오픈채팅방 (0) | 2024.11.01 |
|---|---|
| [프로그래머스][DP] 등굣길 (0) | 2024.11.01 |
| [프로그래머스][Heap] 야근 지수 (0) | 2024.11.01 |
| [프로그래머스][스택] 택배상자 (0) | 2024.10.31 |
| [프로그래머스][스택] 뒤에 있는 큰 수 (0) | 2024.10.30 |