코딩테스트 연습 - 단어 변환 | 프로그래머스 스쿨 (programmers.co.kr)
모범 답안
최소 단계를 구하는 것이므로 BFS로 접근
from collections import deque
def solution(begin, target, words):
if target not in words :
return 0
return bfs(begin, target, words)
def bfs(begin, target, words):
queue = deque()
queue.append([begin, 0]) #시작 단어와 단계 0으로 초기화
while queue:
now, step = queue.popleft()
if now == target:
return step
for word in words:
count = 0
for i in range(len(now)):
if now[i] != word[i]:
count += 1
if count == 1:
queue.append([word, step+1])
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 3단계 / 이중우선순위큐 / python / heapq (0) | 2024.03.18 |
---|---|
다익스트라(dijkstra) 알고리즘 파이썬 구현 코드 (1) | 2024.03.18 |
Programmers / 3단계 / 정수 삼각형 / python / 동적계획법(Dynamic Programming) (1) | 2024.03.16 |
Programmers / 1단계 / 신고 결과 받기 / python / 2022 KAKAO BLIND RECRUITMENT (0) | 2024.03.13 |
Programmers / 2단계 / 배달 / python / Summer/Winter Coding(~2018) (0) | 2024.03.13 |