본문 바로가기
Programing/프로그래머스 오답노트

[프로그래머스] 숫자 변환하기 - ( BFS )

by yooom 2023. 10. 8.
문제 설명
문제 설명 자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다. x에 n을 더합니다 x에 2를 곱합니다. x에 3을 곱합니다. 자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요.

 

풀이
def solution(x, y, n):
    s = set()
    s.add(x)
    cnt = 0
    
    while s:
        if y in s:
            return cnt
        
        sub = set()
        for i in s:
            if i+3 <= y:
                sub.add(i+n)
            if i*2 <= y:
                sub.add(i*2)
            if i*3 <= y:
                sub.add(i*3)
        s = sub
        cnt += 1
   
    return -1

 

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/154538

 

프로그래머스

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

programmers.co.kr

 

728x90

댓글