[python]白駿16953 A->B
4239 ワード
https://www.acmicpc.net/problem/16953
この問題は幅優先探索(bfs)で解決した.
注釈でできるだけ詳しく説明を書いた.
この問題は幅優先探索(bfs)で解決した.
コード#コード#
注釈でできるだけ詳しく説明を書いた.
import sys
input=sys.stdin.readline
from collections import deque
a, b = map(int,input().split())
def bfs(x,cnt):
queue=deque()
queue.append((x,cnt))
while queue:
x,cnt = queue.popleft()
if x ==b:#b로 만들었을 경우 연산횟수 리턴하며 중단
return cnt
elif x<b: #아직 b로 만들지 못한 경우 각각의 연산 실행
nx1 = int(str(x)+"1")
nx2 = x*2
cnt+=1
queue.append((nx1,cnt))
queue.append((nx2,cnt))
return -2 #a를 b로 만들 수 없는 경우 마지막에 +1해주므로 -2를 리턴
print(bfs(a,0)+1)
Reference
この問題について([python]白駿16953 A->B), 我々は、より多くの情報をここで見つけました https://velog.io/@soobin519/Python-백준-16953-A-Bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol