비트연산은 자주 풀었기 때문에 구현에 어려움은 없었다.

홀수 / 짝수 나눠서 계산 하면된다.

#include <vector>

using namespace std;

vector<long long> solution(vector<long long> numbers)
{
    vector<long long> answer;

    for (int i = 0; i < numbers.size(); i++)
    {
        long long temp = 1;

        while ((numbers[i] & temp) > 0)
            temp = temp << 1;
        
        answer.push_back(numbers[i] + temp - (temp >> 1));
    }

    return answer;
}

+ Recent posts