💡문제접근
- BFS 탐색을 이용해 해결할 수 있는 문제였다.
💡코드(메모리 : 36388KB, 시간 : 136ms)
import sys
input = sys.stdin.readline
from collections import deque
import math
N, T, G = map(int, input().strip().split())
def bfs(start):
queue = deque()
queue.append([start, 0])
visited = [0] * 100000
visited[start] = 1
while queue:
v, cnt = queue.popleft()
if cnt > T:
return "ANG"
if v == G:
return cnt
if v + 1 <= 99999 and not visited[v + 1]:
visited[v + 1] = 1
queue.append([v + 1, cnt + 1])
if 0 < v * 2 <= 99999:
nv = v*2 - (10**int(math.log10(v*2)))
if not visited[nv]:
queue.append([nv, cnt + 1])
visited[nv] = 1
return "ANG"
ans = bfs(N)
print(ans)
💡소요시간 : 40m