23-06-29 계륵 일기

E woo·2023년 6월 29일

계륵 일기

목록 보기
6/31
post-thumbnail

이진수에서 1 세기

https://school.programmers.co.kr/learn/courses/30/lessons/12911

10진수의 숫자를 2진수로 변환한 후 숫자 1의 개수를 세야하는 문제이다.

이전에 10진수를 2진수로 바꾸는 문제는 풀어보았고
블로그에도 정리를 해놨기 때문에 문제는 바로 풀 수 있었지만

단순히 2로 나누어 가며 나머지를 구하는 방법 말고
bitset 을 이용하여 바로 1의 개수를 구하는 방법도 있다.

  • 내 코드
#include <string>
#include <vector>

using namespace std;

int cal_one_cnt(int n)
{
    int one_cnt = 0;
    while(n > 0)
    {
        if (n % 2 == 1)
            one_cnt++;
        n /= 2;
    }
    return one_cnt;

}

int solution(int n) {
    int answer = 0;

    int N_one_cnt = cal_one_cnt(n);

    int next_max;
    while(1)
    {
        next_max = ++n;
        if (N_one_cnt == cal_one_cnt(next_max))
        {
            answer = next_max;
            break;
        }

    }

    return answer;
}
  • bitset 을 이용한 다른 사람의 코드
#include <bitset>

using namespace std;

int solution(int n) {
    int num = bitset<20>(n).count();

    while (bitset<20>(++n).count() != num);
    return n;
}

회의 관련

플러터 앱을 개발하기 위해 개발 동아리 회의를 진행하였다.
회의를 여러 번 진행하였지만 확실히 미리 오늘 회의 주제와 하고 싶은 얘기, 전달할 것들, 다음 계획을 미리미리
준비해야만 다같이 얘기하며 진행되는 회의가 되는 듯 하다.

회의 준비는 최소 하루 전에 했던 것과 해야할 것들을 점검하면서 준비할 필요가 있다!!

profile
뒘벼

0개의 댓글