전체 글 (118) 썸네일형 리스트형 큐 (Queue) 큐 자료 구조 (Queue Data Structure)큐는 FIFO(First In, First Out) 구조를 따르는 자료 구조이다. 즉, 먼저 삽입된 데이터가 먼저 제거된다. 큐는 일상 생활에서 쉽게 찾을 수 있다. 예를 들어, 은행의 대기 줄이나 프린터 작업 대기열이 큐의 예이다. 큐는 한쪽 끝에서 삽입 연산이 이루어지고 반대쪽 끝에서 제거 연산이 이루어지는 특성을 갖는다.큐의 주요 연산Enqueue: 큐의 끝(뒤쪽)에 새로운 요소를 추가한다.Dequeue: 큐의 앞(앞쪽)에 있는 요소를 제거하고 반환한다.Peek/Front: 큐의 앞에 있는 요소를 제거하지 않고 반환한다.isEmpty: 큐가 비어 있는지 확인한다.Size: 큐의 크기를 반환한다.큐의 동작Enqueue 연산: 큐의 끝에 새로운 요소.. 스택(Stack) 스택 자료 구조 (Stack Data Structure)스택은 컴퓨터 과학에서 가장 기본적이고 중요한 자료 구조 중 하나이다. 스택은 데이터를 LIFO(Last In, First Out) 방식으로 저장하고 관리한다. 이는 마지막에 삽입된 데이터가 가장 먼저 제거된다는 것을 의미한다. 스택은 일상 생활에서도 쉽게 찾을 수 있다. 예를 들어, 접시를 쌓을 때 가장 위에 있는 접시가 가장 먼저 사용되는 방식이 스택과 동일하다.스택의 주요 연산Push: 스택의 맨 위에 새로운 요소를 추가한다.Pop: 스택의 맨 위에 있는 요소를 제거하고 반환한다.Peek/Top: 스택의 맨 위에 있는 요소를 제거하지 않고 반환한다.isEmpty: 스택이 비어 있는지 확인한다.Size: 스택의 크기를 반환한다.스택의 동작Push.. 시퀀스 해킹, 해시, 슬라이스 사용자 정의 시퀀스형 Vector 클래스class Vector: def __init__(self, *args): self._values = list(args) def __len__(self): return len(self._values) def __getitem__(self, index): if isinstance(index, slice): return Vector(*self._values[index]) elif isinstance(index, int): return self._values[index] else: raise TypeError("Invali.. 파이썬스러운 객체(Pythonic object) 파이썬스러운 객체"파이썬스러운 객체"라는 표현은 Python의 철학과 관례를 잘 따르는 객체를 의미한다. Python은 명확하고 간결하며 직관적인 코딩 스타일을 지향하며, 이러한 철학을 잘 반영한 객체를 "파이썬스럽다"고 표현할 수 있다.Pythonic한 객체의 특징명확하고 간결한 코드: Pythonic한 객체는 코드를 읽기 쉽고 이해하기 쉽게 작성한다. 복잡한 로직을 단순하고 직관적으로 표현하려고 노력한다.PEP 8 준수: Python의 스타일 가이드인 PEP 8을 준수한다. 이는 일관된 코드 스타일을 유지하고, 가독성을 높이는 데 도움이 된다.Duck Typing: Pythonic한 객체는 덕 타이핑을 따른다. 객체의 타입보다는 객체가 필요한 메서드나 속성을 가지고 있는지에 중점을 둔다.공개와 비공개.. 객체 참조, 가변성, 재활용 파이썬 변수파이썬에서 변수는 데이터를 저장하는데 사용되는 이름이다. 변수를 사용함으로써 프로그램에서 데이터를 더 쉽게 관리하고 이해할 수 있다.변수의 정의와 할당: 파이썬에서 변수를 생성하고 값을 할당할 때는 = 연산자를 사용한다. 예를 들어,*x = 10은 x라는 이름의 변수에 10이라는 값을 할당한다.동적 타이핑: 파이썬은 동적 타입 언어이다. 이는 변수에 특정한 데이터 타입을 사전에 지정할 필요 없이, 값을 할당하는 순간 해당 변수의 데이터 타입이 결정된다는 의미이다. 예를 들어, x = 10 후에 x = "hello"로 재할당할 수 있으며, 이 경우 x의 타입이 정수에서 문자열로 변경된다.변수명 규칙: 변수명은 문자, 숫자, 밑줄 문자(_)를 포함할 수 있지만, 숫자로 시작할 수는 없다. 또한 파.. 함수 데커레이터(Decorator) & 클로저(Closure) 데코레이터(Decorator)파이썬의 데커레이터는 기본적으로 함수나 메서드의 동작을 변경하거나 확장하기 위한 강력한 도구이다. 데커레이터는 다른 함수를 인자로 받는 함수이다. 데커레이터는 함수를 감싸는(또는 장식하는) 방식으로 작동하여 함수의 전후에 추가적인 코드를 실행할 수 있게 해준다.데커레이터의 작동 원리파이썬에서 데커레이터는 다음과 같이 작동한다:데커레이터는 함수를 인자로 받는다.데커레이터 내부에서, 원래의 함수를 호출하는 새로운 함수를 정의한다.이 새로운 함수는 추가적인 기능을 수행하고, 원래의 함수를 호출할 수 있다.데커레이터는 이 새로운 함수를 반환한다. 이 반환된 함수는 원래의 함수를 "장식"하고, 원래 함수명을 사용하여 호출될 때마다 새로운 기능을 실행한다.기본 데커레이터 예시def my.. 일급 함수 디자인 패턴 전략 패턴(Strategy Pattern)전략 패턴(Strategy Pattern)은 객체지향 디자인 패턴 중 하나로, 알고리즘을 실행 중에 선택하거나 교체할 수 있도록 해주는 패턴이다. 이 패턴은 알고리즘의 사용을 캡슐화하고, 이를 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있게 해준다. 전략 패턴은 특히 알고리즘을 사용하는 클라이언트와 알고리즘 자체를 분리하고 싶을 때 유용하다.전략 패턴의 구성 요소Context (컨텍스트): 전략을 사용하는 역할을 한다. 필요한 전략을 설정하고, 전략을 이용해 연산을 수행한다.Strategy (전략): 모든 전략의 공통 인터페이스이다. 이 인터페이스를 구현함으로써 구체적인 알고리즘(전략)들이 정의된다.ConcreteStrategy (구체적인 전략): St.. 일급 함수 함수를 객체 처럼 다루는 법Python에서 함수는 일급 객체(first-class objects)로 다룰 수 있다. 이는 함수를 변수에 할당하거나, 다른 함수의 인수로 전달하거나, 다른 함수에서 반환값으로 사용할 수 있다는 의미한다. 이러한 특성을 활용하면 프로그래밍이 훨씬 유연하고 강력해질 수 있다.함수를 객체로 다루는 몇 가지 방법:함수 할당하기: 함수를 다른 변수에 할당하여 그 변수를 통해 함수를 호출할 수 있다.함수를 인수로 전달하기: 함수를 다른 함수의 매개변수로 전달할 수 있다. 이는 고차 함수(higher-order functions)를 만드는 데 사용된다.함수에서 함수 반환하기: 함수에서 다른 함수를 반환할 수 있다. 이 방법은 클로저(closures) 또는 팩토리 함수(factory fu.. 이전 1 ··· 10 11 12 13 14 15 다음