https://school.programmers.co.kr/learn/courses/30/lessons/154538
def solution(x, y, n):
answer = 0
dp=set()
dp.add(x)
while dp: #dp에 데이터가 더이상 없을때까지
if y in dp:
return answer
else:
dp_y=set()
for i in dp:
if i+n<=y:
dp_y.add(i+n)
if i*2<=y:
dp_y.add(i*2)
if i*3<=y:
dp_y.add(i*3)
dp=dp_y
answer+=1
return -1
집합 형태
중복을 막기위해 사용