파이썬에서 주어진 리스트 배열 A를 heap으로 만드는 방법은 적어도 2가지가 있다. 첫번째는 빈 리스트를 만들고 heappush를 이용해서 하나씩 집어넣는 방법 A의 원소를 하나씩 순회해서 heappush하므로 O(NlogN)이다. 두번째 방법은 heapq에서 지원하는 heapify()를 사용하는 것이다. 집어넣기만 하면 주어진 배열을 바로 heap으로 만들어준다. 이 방법의 시간복잡도는... 놀랍게도 O(N)이다. 실제로 두 방법의 시간을 비교해보면.. import heapqimport randomimport time# 테스트할 데이터 크기 목록 (1만, 10만, 100만, 500만)data_sizes = [10000, 100000, 1000000, 5000000]print(f"{'Data Si..
알고리즘을 공부하면서 내장함수를 쓰는게 좋을까? 직접 구현하는게 좋을까?는 누구나 고민하는 부분이다. 크기 n인 배열에서 최댓값을 구하고자 할때 어떻게 하는가? max(A)로 바로 구하거나, for문을 돌아서 최댓값을 갱신해서 찾는다. 어떻게 해도 둘의 시간복잡도는 O(N)이다. 그렇지만 실행시간에는 확실한 차이가 있다. gemini를 이용해 실제 둘의 실행시간의 테스트 코드를 짜서 비교해본다. import timeimport random# 1. 테스트 환경 셋팅N = 1000000 # 100만 개의 데이터print(f"🚀 테스트 데이터 생성 중... (크기: {N}개)")A = [random.randint(1, 1000000) for _ in range(N)]print("✅ 데이터 준비 완료!\n")..
어떤 정수 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()라는 메소드가 있다 어떤 정수를 이진수로 표현할때 그 이..
1. 비교대상 비트연산은 왼쪽 오른쪽 정수들의 비트 단위별로 비교 > 5 & 3은 5 = 101이고 3 = 011이고 3개의 비트 각각을 비교해서 결론을 낸다. 1 & 0 = 0, 0 & 1 = 0, 1 & 1 = 1이므로 5 & 3 = 001 = 1이다. 논리연산은 불리언 값 True, False끼리 비교 > 5 and 3하면 5와 3은 컴퓨터에서 True로 인식하여 결과는 True가 된다 2. 단축평가 논리연산은 단축평가를 한다. 중간에 전체 결론이 확실하게 나면 그 뒤의 연산은 수행하지 않는다. 비트연산은 단축평가를 하지 않는다. 반드시 모든 비트 단위들을 비교한다. 예를 들어 5 and 0 and 3은 5 and 0 = 0이고 여기서 and 더 해봤자 무조건 0이므로 0 and 3을 평가하지 ..
https://arxiv.org/abs/2504.17192?utm_source=pytorchkr&ref=pytorchkr Paper2Code: Automating Code Generation from Scientific Papers in Machine LearningDespite the rapid growth of machine learning research, corresponding code implementations are often unavailable, making it slow and labor-intensive for researchers to reproduce results and build upon prior work. In the meantime, recent Large Languag..
https://discuss.pytorch.kr/t/deep-research-model-context-protocol-mcp/6594 [Deep Research] Model Context Protocol(MCP) 개념 및 이해를 위한 학습 자료MCP(Model Context Protocol) 개념 및 이해를 위한 학습 자료 MCP의 기본 개념 및 역할 MCP(Model Context Protocol)는 AI 모델과 외부 데이터 소스 또는 도구를 연결해주는 개방형 표준 프로토콜입니다. 쉽게 말해discuss.pytorch.kr 1. MCP의 기본 개념 및 역할 MCP(Model Context Protocol)는 AI 모델과 외부 데이터 소스 또는 도구를 연결해주는 개방형 표준 프로토콜입니다. 쉽게 말해..