[프로그래머스][Python3] 단어 변환
2019. 11. 22. 01:31 |
프로그래밍/기타
문제 :
https://programmers.co.kr/learn/courses/30/lessons/43163
나의 풀이 :
from collections import deque
def solution(begin, target, words):
def is_only_one_diff(a, b):
remain = 1
for i in range(len(a)):
if a[i] != b[i]:
remain -= 1
if remain < 0:
return False
return remain == 0
queue = deque([(begin, 0)])
visited = set()
while queue:
curr, depth = queue.popleft()
if curr == target:
return depth
visited.add(curr)
for word in words:
if is_only_one_diff(curr, word) and word not in visited:
queue.append((word, depth+1))
return 0
나의 풀이2 :
deque를 사용하지 않는 버전
def solution(begin, target, words):
def is_only_one_diff(a, b):
remain = 1
for i in range(len(a)):
if a[i] != b[i]:
remain -= 1
if remain < 0:
return False
return remain == 0
queue = [begin]
depth = 0
visited = set()
while queue:
next_queue = set()
for curr in queue:
if curr == target:
return depth
visited.add(curr)
for word in words:
if word not in visited and is_only_one_diff(curr, word):
next_queue.add(word)
queue = next_queue
depth += 1
return 0
'프로그래밍 > 기타' 카테고리의 다른 글
2024 후기 성대경시 초등 4학년 30번 문제 (0) | 2024.10.08 |
---|---|
아파트 실거래가 조회 실거래닷컴 (11) | 2020.02.11 |
[프로그래머스][Python3] 타겟 넘버 (0) | 2019.11.11 |
[Python3][2020카카오공채] 가사 검색 (0) | 2019.10.07 |
[Python3][2020카카오공채] 괄호 변환 (0) | 2019.10.04 |
[Python3][2020카카오공채] 문자열 압축 (0) | 2019.10.03 |
[Python] json.dumps 한글 유니코드 (0) | 2019.04.05 |
하노이의 탑 (1) | 2019.02.13 |
최근에 달린 댓글 최근에 달린 댓글