less than 1 minute read

사용언어

Visual studio 2019 C++

문제링크 : https://programmers.co.kr/learn/courses/30/lessons/12911

다음 큰 숫자 풀이

이 문제는 나보다 큰 숫자중에서 이진수로 변환했을 때 1의 합이 같은 숫자를 구하는 것이다~!

그러므로 그 숫자의 2진수를 구하는 함수가 꼭 필요하다!

using namespace std;

int two(int n) {
	int ans = 0;
	while (n) {
		ans += n % 2; // 1과 0밖에 없기때문에 그냥 더해도 1의 갯수가 됨
		n /= 2;
	}
	return ans;
}

int solution(int n) {
	int ntwo = two(n); // 주어진 숫자의 2진수로 변환된 숫자의 합을 ntwo에 저장
	int rst;
	while (1) {
		rst = two(++n); // 그 다음숫자부터 ..!
		if (ntwo == rst)
			return n;
	}
}

쉬운문제는 간단하게 푸는 습관기릿기릿~! ^^!!

뭔가 서울42 한달과정을 했더니 좀더 기초적으로 접근이 가능해서 더 쉽게 푸는거같은 착각 ㅎㅎㅎ

Categories:

Updated:

Comments