From b138a6c6886d249b2a78929ef17e353cc81975ea Mon Sep 17 00:00:00 2001 From: Janghyeon Hwang <104212460+eric-hjh@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:19:34 +0900 Subject: [PATCH] =?UTF-8?q?80=EC=B0=A8=201=EB=B2=88=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=ED=92=80=EC=9D=B4=EC=9D=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\355\231\251\354\236\245\355\230\204.js" | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 "live7/test80/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" diff --git "a/live7/test80/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" "b/live7/test80/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" new file mode 100644 index 00000000..c89f0ab1 --- /dev/null +++ "b/live7/test80/\353\254\270\354\240\2341/\355\231\251\354\236\245\355\230\204.js" @@ -0,0 +1,40 @@ +const input = require('fs') + .readFileSync(process.platform === 'linux' ? '/dev/stdin' : './input.txt') + .toString() + .trim() + .split('\n') + .map((el) => el.split(' ').map(Number)); + +function solution(input) { + const [N, K] = input[0]; + + const visited = Array(100001).fill(false); + + if (N >= K) { + return N - K; + } + + const queue = [[N, 0]]; + visited[N] = true; + + while (queue.length) { + const [X, time] = queue.shift(); + + if (X === K) return time; + + if (X * 2 <= 100000 && !visited[X * 2]) { + visited[X * 2] = true; + queue.push([X * 2, time]); + } + if (X - 1 >= 0 && !visited[X - 1]) { + visited[X - 1] = true; + queue.push([X - 1, time + 1]); + } + if (X + 1 <= 100000 && !visited[X + 1]) { + visited[X + 1] = true; + queue.push([X + 1, time + 1]); + } + } +} + +console.log(solution(input));