프로그래머스(programmers) 다음 큰 숫자 풀이
사용언어
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 한달과정을 했더니 좀더 기초적으로 접근이 가능해서 더 쉽게 푸는거같은 착각 ㅎㅎㅎ
Comments