#
문제 설명
양의 정수 x에 대한 함수
f(x)를 다음과 같이 정의
조건
매개 변수
numbers
반환값
numbers | result |
---|---|
[2,7] | [3,11] |
function solution(numbers) {
const answer = [];
for (let num of numbers) answer.push(f(num));
return answer;
}
function f(x) {
// 2 로 나뉘어 떨어지면 첫 bit + 1
if (x % 2 === 0) return x + 1;
let bit = "0" + x.toString(2);
let idx = bit.lastIndexOf("0");
return parseInt(`${bit.substring(0, idx)}10${bit.substring(idx + 2)}`, 2);
}
풀이
조건을 이용해 비트를 구하는 solution 구하기
- 마지막에
0
이 있는 bit 의 index 값 전까지 bit 와
그 뒤에 2개의 문자를 10 으로 바꾸고 나머지 bit 더해서 반환