전체 글 (112) 썸네일형 리스트형 연결 리스트 기반 큐 (Linked List-based Queue) 큐(Queue)는 FIFO(First In, First Out) 구조를 가지는 자료 구조로, 먼저 삽입된 요소가 먼저 제거됩니다. 큐는 배열(Array) 또는 연결 리스트(Linked List)로 구현할 수 있습니다. 연결 리스트 기반 큐는 큐의 요소를 노드(Node)로 관리하여 동적으로 메모리를 할당합니다. 이 방법은 큐의 크기가 가변적이어서 메모리 사용이 효율적입니다.연결 리스트 기반 큐의 구조노드 (Node): 큐의 각 요소를 나타내는 기본 단위로, 데이터와 다음 노드를 가리키는 포인터를 포함합니다.데이터 (Data): 노드가 저장하는 값.다음 (Next): 다음 노드를 가리키는 포인터.큐 (Queue): 연결 리스트의 헤드(Front)와 테일(Rear) 노드를 가리키는 포인터를 포함합니다.프론트 .. 연결 리스트 기반 스택 (Linked List-based Stack) 스택(Stack)은 LIFO(Last In, First Out) 구조를 가지는 자료 구조로, 마지막에 삽입된 요소가 가장 먼저 제거된다. 스택은 배열(Array) 또는 연결 리스트(Linked List)로 구현할 수 있다. 연결 리스트 기반 스택은 스택의 요소를 노드(Node)로 관리하여 동적으로 메모리를 할당한다. 이 방법은 스택의 크기가 가변적이어서 메모리 사용이 효율적이다.연결 리스트 기반 스택의 구조노드 (Node): 스택의 각 요소를 나타내는 기본 단위로, 데이터와 다음 노드를 가리키는 포인터를 포함한다.데이터 (Data): 노드가 저장하는 값.다음 (Next): 다음 노드를 가리키는 포인터.스택 (Stack): 연결 리스트의 헤드(Top) 노드를 가리키는 포인터를 포함한다.탑 (Top): 스택.. 원형 연결 리스트 (Circular Linked List) 원형 연결 리스트(Circular Linked List)는 연결 리스트의 한 종류로, 마지막 노드가 첫 번째 노드를 가리켜 리스트의 끝과 처음이 연결된 형태를 가지는 자료 구조이다. 원형 연결 리스트는 단일 연결 리스트(Singly Linked List)와 이중 연결 리스트(Doubly Linked List)로 나눌 수 있다. 원형 연결 리스트는 리스트의 처음과 끝이 연결되어 있어 순환 구조를 이루며, 특정 상황에서 메모리 사용과 알고리즘 구현에 유용하다.구조노드 (Node): 원형 연결 리스트의 기본 구성 요소로, 데이터와 포인터를 포함한다.데이터 (Data): 노드가 저장하는 값.다음 (Next): 다음 노드를 가리키는 포인터. 마지막 노드의 경우, 첫 번째 노드를 가리킨다.헤드 (Head): 리스트.. 이중 연결 리스트 (Doubly Linked List) 이중 연결 리스트(Doubly Linked List)는 각 노드가 두 개의 포인터를 가지고 있는 선형 자료 구조이다. 한 포인터는 다음 노드를 가리키고, 다른 포인터는 이전 노드를 가리킨다. 이를 통해 리스트를 양방향으로 순회할 수 있다. 이중 연결 리스트는 단일 연결 리스트(Singly Linked List)에 비해 더 많은 메모리를 사용하지만, 삽입 및 삭제 연산이 더 유연하고 효율적이다.구조노드 (Node): 이중 연결 리스트의 기본 구성 요소로, 데이터와 두 개의 포인터(이전 노드와 다음 노드를 가리키는 포인터)를 포함한다.데이터 (Data): 노드가 저장하는 값.이전 (Prev): 이전 노드를 가리키는 포인터.다음 (Next): 다음 노드를 가리키는 포인터.헤드 (Head): 리스트의 첫 번째 .. 클래스 메타프로그래밍 클래스 메타프로그래밍클래스 메타프로그래밍은 클래스의 정의와 동작을 동적으로 변경하거나 생성하는 기술을 말한다. 이는 Python에서 메타클래스를 사용하여 구현된다. 메타클래스는 클래스의 클래스로, 클래스가 생성되는 방식을 제어할 수 있다. 이 개념을 이해하기 위해서는 메타클래스, type 함수, 그리고 new 및 init 메서드에 대한 이해가 필요하다.메타클래스메타클래스는 다른 클래스를 생성하는 클래스이다. Python에서 모든 클래스는 기본적으로 type 메타클래스를 사용한다. type 메타클래스는 클래스가 생성되는 방식을 정의한다. 메타클래스를 직접 정의하여 클래스 생성 시 커스터마이징할 수 있다.메타클래스 정의메타클래스를 정의하려면 type을 상속받아 새로운 클래스를 정의한다. 이 클래스에서 __n.. 속성 디스크립터 (Descriptor) 디스크립터(Descriptor)디스크립터(Descriptor)는 파이썬 객체 지향 프로그래밍에서 속성(attribute)을 제어하는 데 사용되는 강력한 도구이다. 디스크립터를 사용하면 클래스 속성의 접근, 설정, 삭제 동작을 커스터마이즈할 수 있다. 디스크립터는 get, set, __delete__라는 세 가지 특별한 메서드를 구현한 객체이다.디스크립터에는 세 가지 유형이 있다:데이터 디스크립터 (Data Descriptor): __get__과 set 메서드를 구현한다. 경우에 따라 delete 메서드도 구현할 수 있다.비데이터 디스크립터 (Non-Data Descriptor): get 메서드만 구현한다.디스크립터 메서드get(self, instance, owner): 속성의 값을 가져올 때 호출된다. .. property 데이터 랭글링(Data Wrangling)데이터 랭글링(Data Wrangling)이란, 원시 데이터를 분석에 적합한 형태로 변환하고 정리하는 과정을 말한다. 데이터 랭글링은 데이터 전처리(data preprocessing)의 중요한 부분으로, 데이터 분석가와 과학자들이 데이터 분석이나 모델링을 수행하기 전에 반드시 거쳐야 하는 단계이다.데이터 랭글링의 주요 단계데이터 수집:다양한 소스(파일, 데이터베이스, 웹, API 등)에서 데이터를 수집한다.데이터 구조화:비정형 데이터를 정형 데이터로 변환하여 테이블 형식으로 만든다.데이터 프레임(pandas DataFrame) 같은 구조로 데이터를 정리한다.데이터 정리 및 클렌징:누락된 값(missing values) 처리: 결측값을 제거하거나 대체한다.중복 데이.. asynico를 이용한 동시성 asyncioasyncio는 파이썬에서 비동기 I/O 작업을 작성할 수 있게 해주는 라이브러리이다. 많은 I/O 작업을 수행하는 프로그램(예: 웹 스크래핑, 네트워크 요청 또는 파일 I/O)에서 비동기 실행을 통해 성능과 응답성을 향상시킬 수 있다.asyncio의 주요 개념이벤트 루프(Event Loop):이벤트 루프는 프로그램에서 발생하는 이벤트(예: I/O 작업 완료)를 관리하고 처리하는 중심 역할을 한다.asyncio에서 이벤트 루프는 여러 비동기 작업을 순차적으로 실행하고 완료될 때까지 대기한다.코루틴(Coroutine):코루틴은 비동기 함수이다. async def로 정의된다.일반 함수와 달리, 코루틴은 await 키워드를 사용하여 다른 코루틴의 실행을 일시 중지하고 결과를 기다릴 수 있다.asy.. 이전 1 ··· 7 8 9 10 11 12 13 14 다음