LV 2: 숫자 변환하기

ewillwin·2023년 8월 14일
0

문제 링크

LV 2: 숫자 변환하기


구현 방식

  • 간단한 bfs 문제였다
  • queue에 값을 넣는 조건만 조금 생각해주면 된다
    • visit을 set으로 정의하고, dest의 값이 visit에 없고, dest가 y 이하라면 그 다음 depth로 넘어갈 수 있다

코드

from collections import deque

def solution(x, y, n):
    
    def bfs(x):
        queue = deque([]); queue.append((x, 0))
        visit = set(); visit.add(x)
        
        while queue:
            src, cnt = queue.popleft()
            if src == y:
                return cnt
            
            dest = src + n
            if dest not in visit and dest <= y:
                visit.add(dest)
                queue.append((dest, cnt+1))
                
            dest = src * 2    
            if dest not in visit and dest <= y:
                visit.add(dest)
                queue.append((dest, cnt+1))
                
            dest = src * 3
            if dest not in visit and dest <= y:
                visit.add(dest)
                queue.append((dest, cnt+1))
                
        return -1
    
    result = bfs(x)
    return result
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글