본문 바로가기
코딩테스트(알고리즘)/프로그래머스

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

by Cafe Mocha 2023. 2. 9.

코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr


알고리즘 : bfs

 

function solution(x, y, n) {
      if (x===y) return 0;
      let queue = [];
  let vis = new Array(y * 2).fill(0);
  queue.push(x);
  vis[x] = 0;
  while (queue.length) {
    let cx = queue.shift();
    for (let i = 0; i < 3; i++) {
      let nx;
      if (i === 0) nx = cx + n;
      else if (i === 2) nx = cx * 2;
      else nx = cx * 3;
      if (nx < 0 || nx > y) continue;
    if(vis[nx]) continue;
      vis[nx] = vis[cx] + 1;
      queue.push(nx);
        
        if(nx===y) return vis[y];
    }
  }
    return -1;
    
}