Algorithm/Baekjoon

BOJ 1463 1로 만들기 Python3

Bonita SY 2023. 6. 28. 15:48
728x90

https://www.acmicpc.net/problem/1463

 

1463번: 1로 만들기

첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.

www.acmicpc.net

 

 

from collections import deque
import sys
input = sys.stdin.readline

X = int(input())

def dfs():
    queue = deque()
    queue.append((X, 0))
    while queue:
        x, cnt = queue.popleft()
        if x == 1:
            print(cnt)
            return

        if (x % 3) == 0:
            queue.append((x//3, cnt+1))

        if (x % 2) == 0:
            queue.append((x//2, cnt+1))

        queue.append((x-1, cnt+1))

dfs()
728x90