== Status == ||Problem|| 2453||User||jereneal20|| ||Memory||388K||Time||125MS|| ||Language||GCC||Result||Accepted|| == Idea == * 비트맵연산을 적당히 써서 했습니다. 1의 갯수를 for문으로 구하고, 자신보다 큰 숫자가 1의갯수가 처음숫자와 같을때까지 1씩 늘려가며 계산시켰습니다. == Source Code == {{{ #include int bincount(int X); int main() { int N,n,k=0; while(1){ scanf("%d",&N); if(N==0) break; k=bincount(N); for(n=N+1;k!=bincount(n);n++){} printf("%d\n",n); } return 0; } int bincount(int X) { int nf,kf=0; for(nf=X;nf>0;nf=nf>>1){ if(nf%2==1) kf++; } return kf; } }}} == Trial and error == * 분명 처음에는 아 뭐 이런거 쯤이야 어렵지 않겠쿤! 하고 문제에 들이댔습니다. .. 그러나 나는 10진수로 보이지만 컴터는 2진수로 알고있겠지!! 라고 생각하고 계산하려해도 당최 쉽지가 않더군요 -- 한참 고민하다 진경이가 힌트를 준 덕분에 해결했습니다. 한번만에 accept! 코드길이는 198B까지 줄였으나, 더 줄일 생각은 아직 별로 들질 않네요-ㅎㅎㅎ * 한번만에 accept 부럽다아-. 난 항상 고루고루 에러를 겪는데ㅋㅋㅋㅋ 덕분에 기를 빨려서 그런가 두번째 문제가 이해가 안간다 ㅠㅠ 왜 A1B3C1A2 요런식으로 가는거고 위에 3은 뭐고 으어어... -[강소현] ---- [ACM_ICPC/2011년스터디]