코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (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;
}
'코딩테스트(알고리즘) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 이모티콘 할인행사 (Javascript) (0) | 2023.02.10 |
---|---|
[프로그래머스] 택배 배달과 수거하기 (Javascript) (0) | 2023.02.10 |
[프로그래머스] 뒤에 있는 큰 수 찾기 (Javascript) (0) | 2023.02.09 |
[프로그래머스] 무인도 여행 (Javascript) (0) | 2023.02.09 |
[프로그래머스] 호텔대실 (Javascript) (0) | 2023.02.09 |