본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 숫자 변환하기 파이썬 lv2

by 푸딩코딩 2023. 6. 24.
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

def solution(x, y, n):
    s = set() #순서가 없다.  중복이 없다. set은 집합
    s.add(x) #s집합에 x넣음
    cnt=0 #최소횟수를 세는
    
    while(s):
        if(y in s): #같으면 종료, cnt 반환
            return cnt
        t=set() #임시로 빈 집합 만들어준다 
        for i in s: #s의 원소에 대해 수행하고, 빈 집합 t에 추가해주어 원소 갱신
            if(i*2<=y):
                t.add(i*2)
            if(i*3<=y):
                t.add(i*3)
            if(i+n<=y):
                t.add(i+n)
        s=t #s를 t로 대치 
        cnt+=1 
            

    return -1

처음에는 DFS로 접근했다가 comparison 오류가 나서 다른 방법을 찾음 

 

 

728x90
반응형