diff --git "a/LiiNi-coder/202512/17 PGM 2\352\260\234 \354\235\264\355\225\230\353\241\234 \353\213\244\353\245\270 \353\271\204\355\212\270.md" "b/LiiNi-coder/202512/17 PGM 2\352\260\234 \354\235\264\355\225\230\353\241\234 \353\213\244\353\245\270 \353\271\204\355\212\270.md" new file mode 100644 index 00000000..894db07b --- /dev/null +++ "b/LiiNi-coder/202512/17 PGM 2\352\260\234 \354\235\264\355\225\230\353\241\234 \353\213\244\353\245\270 \353\271\204\355\212\270.md" @@ -0,0 +1,40 @@ +```java +import java.util.*; + +class Solution { + public long solution(long[] numbers) { + ArrayList answers = new ArrayList<>(); + + for(long num: numbers){ + long now = num + 1; + while(true){ + if(isOneOrTwoDifference(num, now)){ + answers.add(now); + break; + } + now++; + } + } + return answers.stream() + .mapToLong(Long::longValue) + .toArray(); + } + + private boolean isOneOrTwoDifference(long a, long b){ + long diff = a ^ b; + int count = 0; + while(diff > 0){ + if((diff & 1) == 1){ + count++; + } + if(count > 2){ + return false; + } + + diff >>= 1; + } + return true; + } +} + +```