JasonScript

Jason's Research Blog

Development/Algorithm

< 알고리즘 문제 풀이 > 숫자 변환하기

jason.bak 2023. 12. 5. 20:36

문제 링크 > 코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

솔루션 >

from collections import deque

def solution(x, y, n):
    if x == y:
        return 0

    visited = set()
    queue = deque([(x, 0)])

    while queue:
        current, operations = queue.popleft()

        if current == y:
            return operations

        for operation in [current + n, current * 2, current * 3]:
            if operation not in visited and operation <= y:
                visited.add(operation)
                queue.append((operation, operations + 1))

    return -1