*문제 출처는 백준에 있습니다.
문제 제목: A - > B / 16953번 (실버 2단계)
문제 사이트: https://www.acmicpc.net/problem/16953
문제 설명
나의 풀이
from collections import deque
def bfs(start, end):
# 큐 생성 (값과 현재까지의 연산 수를 저장)
queue = deque([(start, 1)]) # (현재 값, 단계 수)
while queue:
current, cnt = queue.popleft()
# 도착 조건
if current == end:
return cnt
# 두 가지 연산 수행
num1 = current * 2
num2 = current * 10 + 1
# end보다 작을 때만 다음 단계로 이동
if num1 <= end:
queue.append((num1, cnt + 1))
if num2 <= end:
queue.append((num2, cnt + 1))
return -1
A, B = map(int, input().split())
print(bfs(A, B))
※ 알아야 할 것
https://newkimjiwon.tistory.com/262
이 자료구조를 알아야 풀 수 있다!
'코딩테스트(프로그래머스 & 백준) > 백준-Python' 카테고리의 다른 글
백준 / 로프 / 2217번 / Python (0) | 2024.11.25 |
---|---|
백준 / 설탕 배달 / 2839번 / Python (0) | 2024.11.23 |
백준 / 큐 / 10845번 / Python (0) | 2024.11.21 |
백준 / 임시 반장 정하기 / 1268번 / Python (1) | 2024.11.20 |
백준 / 문제집 / 1766번 / Python (0) | 2024.11.19 |