본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 "2개 이하로 다른 비트"

by 시아나 2022. 4. 14.

https://programmers.co.kr/learn/courses/30/lessons/77885#

 

코딩테스트 연습 - 2개 이하로 다른 비트

 

programmers.co.kr


나의 풀이

#include <string>
#include <vector>
#include <cmath>

using namespace std;

vector<long long> solution(vector<long long> numbers) {
	vector<long long> answer;
	for (long long num : numbers) {
		long long n = num;
		long long one;
		one = -1;
		for (int i = 0; n > 0; i++) {
			if (n % 2 == 1) {
				one = i;
			}
			else {
				break;
			}
			n /= 2;
		}
		long long result = num + (powl(2, one) < 1 ? 1 : powl(2, one));
		answer.push_back(result);
	}
	return answer;
}