-
문제
https://www.acmicpc.net/problem/16953
How to Solve ?
[1] DFS
function dfs(x, count) { if (x === b) { return console.log(count); } else { if (x * 2 <= b) { dfs(x * 2, count + 1); } if (x * 10 + 1 <= b) { dfs(x * 10 + 1, count + 1); } } } let count = 1; const [a, b] = [2, 162]; dfs(a, count);
[2] BFS
function solution() { const queue = [a, 1]; while (queue.length) { let n = queue.shift(); let count = queue.shift(); if (n === b) { return console.log(count); } else { if (n * 2 <= b) { queue.push(n * 2, count + 1); } if (n * 10 + 1 <= b) { queue.push(n * 10 + 1, count + 1); } } } console.log(-1); } let count = 1; const [a, b] = [2, 162]; solution();
'PS > 백준' 카테고리의 다른 글
[ 백준_2644 ] 촌수계산 ( bfs - 자바스크립트 ) (0) 2021.06.27 [ 백준 - 2659 ] 십자카드 문제 ( 완전탐색 - 자바스크립트 ) (0) 2021.06.27 [백준_1713] 후보 추천하기 ( 시뮬레이션 - 자바스크립트 ) (0) 2021.06.17 [백준_20365] 블로그2 ( 그리디 - 자바스크립트 ) (0) 2021.06.17 [백준_10971] 외판원 순회2 ( 브루트포스 - 완전탐색 ) (0) 2021.06.16 댓글