통계학 세상
close
프로필 배경
프로필 로고

통계학 세상

  • 분류 전체보기 (1484)
    • 다시보는 통계학 (28)
    • 딥러닝 (306)
      • 딥러닝 기초 (63)
      • Computer Vision (76)
      • NLP (59)
      • Machine Reading Comprehensi.. (21)
      • light weight modeling (47)
      • Graph (17)
      • recommendation system (7)
      • reinforcement learning (2)
      • LLM (6)
      • Deep Learning Specializatio.. (7)
      • Diffusion (1)
    • AI 논문 (45)
      • AI trend research (42)
      • 고전이 된 AI 논문 (3)
    • 데이터 분석 프로젝트 연습 (0)
    • 프로그래밍 (291)
      • 프로그래밍 개론 (7)
      • Python (79)
      • Java (15)
      • C++ (9)
      • C# (0)
      • 비전공자를 위한 자바스크립트 (8)
      • Pandas (10)
      • Numpy (8)
      • Pytorch (30)
      • SQL (23)
      • Unity&C# (27)
      • Tensorflow.js (2)
      • git 가이드 (10)
      • 비전공자를 위한 Web (4)
      • React (17)
      • node.js (17)
      • FastAPI (7)
      • docker & jenkins (10)
      • R 프로그래밍 (8)
    • 알고리즘 (500)
      • 알고리즘 일반 (61)
      • Java 기초 (22)
      • C++ 기초 (22)
      • 브루트포스 (22)
      • DFS BFS 정복기 (28)
      • 그래프 이론 정복기 (21)
      • 분리집합 (7)
      • 최단거리 알고리즘 (21)
      • 최소 스패닝 트리 (5)
      • 다이나믹 프로그래밍 (64)
      • 구현,시뮬레이션 (11)
      • 이분 탐색 (17)
      • 정렬 알고리즘 (9)
      • 그리디 알고리즘 (30)
      • 투 포인터 알고리즘 (9)
      • 누적 합 알고리즘 (14)
      • 문자열 알고리즘 (17)
      • 자료구조(스택,큐,해시맵) (14)
      • 순열 사이클 분할 (1)
      • 슬라이딩 윈도우 (2)
      • 연결리스트 (3)
      • 분할 정복 (4)
      • 위상정렬 (3)
      • 세그먼트 트리 (14)
      • 유량 알고리즘 (1)
      • 이분 매칭 (2)
      • 고급 자료구조 (3)
      • 희소배열(더블링) (2)
      • 전처리 (1)
      • 게임이론 (8)
      • 비트마스킹 (8)
      • 애드 혹 알고리즘 (33)
      • 중간에서 만나기 (4)
      • 확률론 알고리즘 (3)
      • 선형대수학 알고리즘 (3)
      • 압축 알고리즘 (2)
      • 오프라인 쿼리 (1)
      • 정밀도 (3)
      • 재귀 연습장 (1)
      • 비둘기집 원리 (2)
      • 휴리스틱 (1)
      • 고급 알고리즘 (1)
      • 알고리즘 논문 (0)
    • 경쟁 프로그래밍 (22)
      • Atcoder (22)
    • 책 읽기 (79)
      • 비전공자도 이해할 수 있는 AI지식 (51)
      • 수학보다 데이터 문해력 (28)
    • 3D 모델링 (0)
      • blender (0)
    • 정수론 (75)
    • 선형대수학 (28)
    • 조합론 (11)
    • 정형데이터 (25)
    • 정보이론 (3)
    • Visualization (7)
    • 기하학 (29)
    • 컴퓨터과학(CS) (15)
    • 대수학 (4)
    • 데이터 해석 (6)
    • 금융 (1)
    • 읽을거리 (9)
  • 홈
  • 태그
  • 방명록

어떤 정수의 밑을 2로 하는 로그값 $log_{2}x$을 정확하게 구하는 방법

어떤 정수 n이 주어졌을때, n보다 작거나 같으면서 가장 가까운 2의 거듭제곱이 필요할때가 있다 구체적으로 $2^{x} = n$을 만족하는 정수 x를 찾고 싶을 때가 있다. 제일 쉬운 방법은? import mathn = int(input())print(int(math.log2(n))) 근데 얘는 문제가 n이 엄청 크면 실수오차 발생으로 틀릴 수 있다는거 이를 피하는 방법은 2씩 직접 곱해서 찾는 방법이 있고 import mathn = int(input())x = 0v = 1while v n: break x += 1 print(x) 그런데 이 방법은 O(logN)이다. 메소드 중에 bit_length()라는 메소드가 있다 어떤 정수를 이진수로 표현할때 그 이..

  • format_list_bulleted 알고리즘/비트마스킹
  • · 2026. 3. 25.
  • textsms
이진수에서 1의 개수를 세는 Kernighan’s Algorithm과 bit_count()

이진수에서 1의 개수를 세는 Kernighan’s Algorithm과 bit_count()

1. 문제 0과 1로 구성된 이진 비트열에서 1의 개수를 구한다면? '1101'이면 1이 3개 2. 방법1 간단하게 비트열을 돌아서 1의 개수를 세기 시간복잡도는 비트열의 길이를 S라 하면 O(S) s = '1101'count = 0for i in range(len(s)): if s[i] == '1': count += 1print(count) 비트열이 주어지지 않고 단순히 정수로 주어질 수 있다 예를 들어 '1101' = 13인데 이진 비트열로 바꾸지 않고 구할 수 있나? n의 마지막 비트와 1을 and연산하여 1이면 counting하고 n의 마지막 비트를 삭제해나간다 비트를 삭제하는 방법은 n >> 1 n의 비트를 오른쪽으로 1칸 이동시키고 최하위비트는 소멸된다..

  • format_list_bulleted 알고리즘/비트마스킹
  • · 2025. 2. 2.
  • textsms
합과 bitwise or연산이 같게되는 조건

합과 bitwise or연산이 같게되는 조건

1322번: X와 K  x+y = x | y를 만족하는 k번째로 작은 자연수 y를 구하는 문제 합과 or 연산이 서로 같게되는 조건을 먼저 생각해본다 or연산은 두 bit가 1이면 1이고 두 bit가 0이면 0이고 두 bit가 1,0으로 서로 다르면 1인 연산 두 수를 합하는 것은 어떤 의미인지 생각해본다 x,y를 2진수로 바꿔서 예를 들어 5 = 101이고 12 = 1100인데 이진수끼리 서로 덧셈은 어떻게 하는가? $101 = 0 * 2^{3} + 1 * 2^{2} + 0 * 2^{1} + 1 * 2^{0}$ $1100 = 1*2^{3} + 1 * 2^{2} + 0 * 2^{1} + 0 * 2^{0}$ 우측에 2의 거듭제곱으로 바꾼 것끼리 더한다고 생각해보면,  $(0 + 1)*2^{3} + (1+1..

  • format_list_bulleted 알고리즘/비트마스킹
  • · 2025. 1. 9.
  • textsms

이진수의 마지막 n개의 비트가 모두 켜져있는지 확인하는 방법

SW Expert Academy SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com  정수 m의 마지막 n개의 비트가 모두 1인지 확인하는 문제 m이 $10^{8}$이고 테스트 케이스는 10000개이고 제한시간 2초라 단순하게 확인하면 시간초과날 것 같다 가장 쉬운 방법은 0부터 n-1까지 순회해서 각 비트가 1인지 검사하는 것 (1 이다. T = int(input())for test_case in range(1, T + 1): n,m = map(int,input().split()) no = False for i in range(n): if (1   다른..

  • format_list_bulleted 알고리즘/비트마스킹
  • · 2024. 5. 3.
  • textsms
비트마스크를 이용한 에라토스테네스의 체 배우기

비트마스크를 이용한 에라토스테네스의 체 배우기

1. 에라토스테네스의 체 기본형태 n이하의 소수를 구하는 알고리즘 n+1개의 1을 가지는 리스트로 초기화하고, 2부터 n의 제곱근까지 순회하여 해당 수의 배수를 모두 지우고 나면 소수만 남는다는 알고리즘이다 n = int(input()) result = [1]*(n+1) for i in range(2,int((n+1)**(1/2))+1): if result[i] == 1: for j in range(i*i,n+1,i): result[j] = 0 prime_list = [i for i in range(2,n+1) if result[i] == 1] 여기서 j의 시작 지점을 i+i로 하는 경우가 많은데, i*i로 해도 된다. 왜냐하면, i+i는 결국 가장 먼저 2의 배수에서 지워지기 때문이다. 2. 에라토스테..

  • format_list_bulleted 알고리즘/비트마스킹
  • · 2023. 5. 4.
  • textsms
정수 n을 2의 거듭제곱으로 나눈 나머지를 효율적으로 구하는 방법

정수 n을 2의 거듭제곱으로 나눈 나머지를 효율적으로 구하는 방법

나머지를 구할때 %로 구하면 되는데.. 효율적으로 구한다는게 도대체 무슨말인가? %연산은 계산 비용이 높아서 비효율적으로 알려져있다. n = 98 print(n % 2) #0 print(n % 4) #2 print(n % 8) #2 print(n % 16) #2 print(n % 32) #2 계산비용을 줄이고 싶다면 % 연산자를 사용하지 않고 나머지를 구해야한다. 예를 들어 4로 나눈 나머지를 어떻게 구할 수 있을까? 컴퓨터는 모든 수를 2진수로 인식하기 때문에.. 가장 쉬운 접근은 정수 n을 2진수로 나타내보는 것이다. 위 그림을 보면 어떤 수를 4로 나눈 나머지는 0,1,2,3중 하나인데... n을 2진수로 나타냈을때 4로 나눈 나머지는... n의 2진수 표현에서 오른쪽 끝의 2비트만 가져오는 것임을..

  • format_list_bulleted 알고리즘/비트마스킹
  • · 2023. 5. 3.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (1484)
    • 다시보는 통계학 (28)
    • 딥러닝 (306)
      • 딥러닝 기초 (63)
      • Computer Vision (76)
      • NLP (59)
      • Machine Reading Comprehensi.. (21)
      • light weight modeling (47)
      • Graph (17)
      • recommendation system (7)
      • reinforcement learning (2)
      • LLM (6)
      • Deep Learning Specializatio.. (7)
      • Diffusion (1)
    • AI 논문 (45)
      • AI trend research (42)
      • 고전이 된 AI 논문 (3)
    • 데이터 분석 프로젝트 연습 (0)
    • 프로그래밍 (291)
      • 프로그래밍 개론 (7)
      • Python (79)
      • Java (15)
      • C++ (9)
      • C# (0)
      • 비전공자를 위한 자바스크립트 (8)
      • Pandas (10)
      • Numpy (8)
      • Pytorch (30)
      • SQL (23)
      • Unity&C# (27)
      • Tensorflow.js (2)
      • git 가이드 (10)
      • 비전공자를 위한 Web (4)
      • React (17)
      • node.js (17)
      • FastAPI (7)
      • docker & jenkins (10)
      • R 프로그래밍 (8)
    • 알고리즘 (500)
      • 알고리즘 일반 (61)
      • Java 기초 (22)
      • C++ 기초 (22)
      • 브루트포스 (22)
      • DFS BFS 정복기 (28)
      • 그래프 이론 정복기 (21)
      • 분리집합 (7)
      • 최단거리 알고리즘 (21)
      • 최소 스패닝 트리 (5)
      • 다이나믹 프로그래밍 (64)
      • 구현,시뮬레이션 (11)
      • 이분 탐색 (17)
      • 정렬 알고리즘 (9)
      • 그리디 알고리즘 (30)
      • 투 포인터 알고리즘 (9)
      • 누적 합 알고리즘 (14)
      • 문자열 알고리즘 (17)
      • 자료구조(스택,큐,해시맵) (14)
      • 순열 사이클 분할 (1)
      • 슬라이딩 윈도우 (2)
      • 연결리스트 (3)
      • 분할 정복 (4)
      • 위상정렬 (3)
      • 세그먼트 트리 (14)
      • 유량 알고리즘 (1)
      • 이분 매칭 (2)
      • 고급 자료구조 (3)
      • 희소배열(더블링) (2)
      • 전처리 (1)
      • 게임이론 (8)
      • 비트마스킹 (8)
      • 애드 혹 알고리즘 (33)
      • 중간에서 만나기 (4)
      • 확률론 알고리즘 (3)
      • 선형대수학 알고리즘 (3)
      • 압축 알고리즘 (2)
      • 오프라인 쿼리 (1)
      • 정밀도 (3)
      • 재귀 연습장 (1)
      • 비둘기집 원리 (2)
      • 휴리스틱 (1)
      • 고급 알고리즘 (1)
      • 알고리즘 논문 (0)
    • 경쟁 프로그래밍 (22)
      • Atcoder (22)
    • 책 읽기 (79)
      • 비전공자도 이해할 수 있는 AI지식 (51)
      • 수학보다 데이터 문해력 (28)
    • 3D 모델링 (0)
      • blender (0)
    • 정수론 (75)
    • 선형대수학 (28)
    • 조합론 (11)
    • 정형데이터 (25)
    • 정보이론 (3)
    • Visualization (7)
    • 기하학 (29)
    • 컴퓨터과학(CS) (15)
    • 대수학 (4)
    • 데이터 해석 (6)
    • 금융 (1)
    • 읽을거리 (9)
최근 글
인기 글
최근 댓글
태그
  • #알고리즘
  • #NLP
  • #파이썬
  • #딥러닝
  • #정수론
  • #python
  • #프로그래밍
  • #코딩테스트
  • #머신러닝
  • #백준
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바