본문 바로가기
프로그래머스/2단계

(Python/LV2) 숫자 변환하기

by windy7271 2023. 2. 19.
728x90
반응형

문제 출처:

풀이:

def solution(x, y, n):

    count = 0
    answer = set()
    answer.add(x) # 시작값 x 10 넣음

    while answer:
        print(answer)
        if y in answer:
            return count

        nx_answer = set()
        for nx in answer:
            if nx + n <= y:
                nx_answer.add(n+nx)
            if nx * 2 <= y:
                nx_answer.add(2*nx)
            if nx * 3 <= y:
                nx_answer.add(3*nx)
        answer = nx_answer
        count += 1
    return -1

answer = set() 으로 해준다

nxasnwer = set() 다음 set 으로 만들어주기 위함이다.

for 문에 그냥 넣으면 오류나옴

 

answer = set(10) 이면

nsanswer 에는 set((10+n),(2*10),(3*10)) 을 넣어주고 set 을 최신화 시켜준다

다음 while문을 돌리면서 y값이 set에 존재하면

ex) set(15,20,30)  안에 존재 하게 되면 지금 까지 센 count 값을 반환해 주면 된다.

 

 

 

 

 

반응형

댓글