새소식

반응형
알고리즘/c++

[프로그래머스] level2 다음 큰 숫자 - C++

  • -
728x90
반응형

면접준비 하기 싫어서 문제 풀었다 ㅎ

 

두가지 방법으로 가능할듯

  1. 그냥 냅다 2로 나눠가며 1의 갯수 구하기
  2. bitset 라이브러리 활용

bitset 라이브러리를 활용해서, count()함수 사용하면 해당 이진수 중 1의 갯수 알 수 있음

 

using namespace std; int countone(int n){ int onenum=0; while(1){ if(n==0)break; if(n%2==1) onenum++; n/=2; } return onenum; } int solution(int n) { int answer = n+1; int num=countone(n); while(1){ if(num==countone(answer))break; answer++; } return answer; }

 

#include <bitset> using namespace std; int solution(int n) { int num=bitset<20>(n).count(); int answer=n+1; int one=bitset<20>(answer).count(); while(num!=one){ one=bitset<20>(++answer).count(); } return answer; }

 

 

bitset 써서 막 한두줄로 기깔나게 코드짜는사람들 있던디 .. 멋지다 나두 언젠간 ~~ ..

반응형

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.