시프트연산1 [프로그래머스][C++][2단계] 다음 큰 숫자 #include #include using namespace std; int solution(int n) { // 1. n을 2진수로 변환했을 때의 1의 갯수 구하기 // 2. n+1부터 1씩 증가시켜가면서 2진수로 변환했을 때의 1의 갯수 구하기 // 3. n과 1의 갯수 비교후 같으면 해당 수를 리턴 int nCount = 0; while(true) { int count = 0; // 현재 수를 이진수로 바꿨을 때 맨 뒷자리 수부터 1인지 확인 for(int i = 0; (n>>i) > 0; i++) { // 시프트 연산을 이용해 나온 수가 홀수인지 판단하여 마지막 자리의 수를 확인할 수 있음. if(((n>>i) % 2) == 1) count++; } if(nCount == 0) nCount = c.. 2023. 11. 9. 이전 1 다음