diff --git "a/LiiNi-coder/202511/09 PGM \354\210\253\354\236\220 \353\263\200\355\231\230\355\225\230\352\270\260.md" "b/LiiNi-coder/202511/09 PGM \354\210\253\354\236\220 \353\263\200\355\231\230\355\225\230\352\270\260.md" new file mode 100644 index 00000000..4bd57f86 --- /dev/null +++ "b/LiiNi-coder/202511/09 PGM \354\210\253\354\236\220 \353\263\200\355\231\230\355\225\230\352\270\260.md" @@ -0,0 +1,36 @@ +```java +import java.util.*; + +class Solution { + private static int MAX = 1_000_001; + public int solution(int x, int y, int n) { + int answer = 0; + Queue q = new ArrayDeque(); + q.offer(new int[]{0, x}); + boolean[] visited = new boolean[MAX]; + visited[x] = true; + boolean hasAnswer = false; + int count = 0, value; + while(!q.isEmpty()){ + int[] temp = q.poll(); + count = temp[0]; + value = temp[1]; + if(value == y){ + hasAnswer = true; + break; + } + for(int new_value: new int[]{value+n, value*2, value*3}){ + if(new_value >= MAX){ + continue; + } + if(visited[new_value]) + continue; + q.offer(new int[]{count+1, new_value}); + visited[new_value] = true; + } + + } + return (hasAnswer)? count: -1; + } +} +```