Computer Science

Computer Science

시리즈 | LLD - 3. 다음 리스트의 크기는 (N*9/8+6)&~3입니다.

시리즈 | LLD - 3. 다음 리스트의 크기는 (N*9/8+6)&~3입니다.

파이썬의 리스트는 가장 많이 사용하는 built-in mutable 타입 중 하나이다. 이번 글에서는 이러한 리스트의 CPython수준에서의 작동을 명확히 알아보자.   Declaration Python의 리스트는 multi-type을 지원한다. 당연하게도 모든 원소가 PyObject*이기 때문이다. python list의 구현부를 보자. [링크] typedef struct { PyObject_VAR_HEAD /* Vector of pointers to list elements. list[0] is ob_item[
Hong Junseo
시리즈 | LLD - 1. 오브젝트란?

시리즈 | LLD - 1. 오브젝트란?

일반적으로 프로그래밍에서 리스트는 다음과 같은 종류의 구현체를 가진다. - Array List - Linked List - ... 후에 자세히 설명하겠지만, python에서는 Array List를 이용하여 리스트를 구현한다.그러나 Array List는 각 원소의 크기가 일정해야 하며 이는 가변 크기를 가진 python의 리스트와는 다른 모습이다. 파이썬의 리스트 구현 부분을 보자. [링크] typedef struct { PyObject_VAR_
Hong Junseo
시리즈 | LLD - 0. 인터프리터 언어란?

시리즈 | LLD - 0. 인터프리터 언어란?

흔히들 Python은 인터프리터 언어라는 말을 들어 보았을 것이다. 이를 알아 보기 위해서는 먼저 컴퓨터의 소스 코드 실행 과정을 알아 보아야 한다.  일반적으로 컴퓨터는 각 CPU별로 미리 정의된 명령어 집합에 따라 명령어를 해석하고 수행한다. 이 과정은 논리 회로에 의해 수행되며 그러한 이진 명령어를 보기 좋게 영어로 나타낸 것이 어셈블리어이다. 어셈블리어는 거의
Hong Junseo
Matroid Theory - 1. What is Matroid?

Matroid Theory - 1. What is Matroid?

알고리즘 문제 해결 분야의 다양한 문제를 접하다 보면, 이른바 'Proof by AC(Accepted)'라고 불리는 상황을 자주 접하게 된다. 온라인 저지에서는 내 코드가 맞았다고 하긴 하는데... 정작 코드를 작성한 본인은 해당 로직이 왜 작동하는지 이해하지 못하는 상황. 이러한 상황이 발생하는 대표적인 사례는 정당성 증명을 생략한 상태로 그리디 알고리즘
Kim Minjae