시리즈 | LLD - 2. 덧셈의 시간복잡도는 O(logN)입니다. Python에서 '수'를 나타내는 자료형은 int형과 float형이다. 이러한 값들은 어떠한 데이터로 C++수준에서 작동할까? 먼저 python에서 1000**1000을 계산해 보자. 놀랍게도 잘 출력된다. C++에서는 이러한 값을 저장할 수 있는 기본 타입을 제공하지 않는다. Unsigned long long 은 0~2^64-1의 값을 가지는데, log(2^64-1)
시리즈 | LLD - 1. 오브젝트란? 일반적으로 프로그래밍에서 리스트는 다음과 같은 종류의 구현체를 가진다. - Array List - Linked List - ... 후에 자세히 설명하겠지만, python에서는 Array List를 이용하여 리스트를 구현한다.그러나 Array List는 각 원소의 크기가 일정해야 하며 이는 가변 크기를 가진 python의 리스트와는 다른 모습이다. 파이썬의 리스트 구현 부분을 보자. [링크] typedef struct { PyObject_VAR_HEAD /* Vector of
시리즈 | LLD - 0. 인터프리터 언어란? 흔히들 Python은 인터프리터 언어라는 말을 들어 보았을 것이다. 이를 알아 보기 위해서는 먼저 컴퓨터의 소스 코드 실행 과정을 알아 보아야 한다. 일반적으로 컴퓨터는 각 CPU별로 미리 정의된 명령어 집합에 따라 명령어를 해석하고 수행한다. 이 과정은 논리 회로에 의해 수행되며 그러한 이진 명령어를 보기 좋게 영어로 나타낸 것이 어셈블리어이다. 어셈블리어는 거의
Matroid Theory - 1. What is Matroid? 알고리즘 문제 해결 분야의 다양한 문제를 접하다 보면, 이른바 'Proof by AC(Accepted)'라고 불리는 상황을 자주 접하게 된다. 온라인 저지에서는 내 코드가 맞았다고 하긴 하는데... 정작 코드를 작성한 본인은 해당 로직이 왜 작동하는지 이해하지 못하는 상황. 이러한 상황이 발생하는 대표적인 사례는 정당성 증명을 생략한 상태로 그리디 알고리즘
딥러닝으로 증명하기(DL4TP) https://github.com/ZHAOYU-LI/dl4tp 1. DL4TP란 무엇인가? Welcome to our repository! This is a curated collection of resources related to deep learning for theorem proving. 수학 정리 증명(Theorem Proving) 분야는 오랫동안 사람이 작성한 논리 규칙 등에 기반해 발전해왔다. 하지만, 최근에는 대형 언어 모델(LLM)들이 빠르게 이
TCP와 UDP로 알아보는 네트워킹 우리는 대 인터넷의 시대에 살고 있다. 우리는 도서관에 가서 종이들을 뒤지는 대신 구글에 검색하고 ChatGPT와 말씨름을 벌인다. 친구와 같이 비디오 게임을 하기 위해 오락실으로 갈 이유도 없다. 각자의 집에서 원격으로 접속하면 되지 않는가? 혹자는 작금 인류사상 최고의 발명품으로 꼽는 이 인터넷은, 어떻게 작동하는 것일까? 이 질문의 답변은 너무나 방대하여 차마