예시 1 : 1110 -> 1111
예시 2 : 0111 -> 1011
예시 3 : 110101 -> 110110
function solution(numbers) {
return numbers.reduce((acc, cur) => {
// 이진수로 변환
const s = cur.toString(2);
// 맨 마지막 0의 인덱스
const i = s.lastIndexOf(0);
// i가 맨 마지막이면 1만 더해서 반환
if (i === s.length - 1) acc.push(cur + 1);
// i가 뒤에서 n번째에 위치했다면 2의 n-1 제곱만 더해서 반환한다.
else acc.push(cur + Math.pow(2, s.length - i - 2));
return acc;
}, []);
}