반응형

CS/자료구조 3

재귀 함수 구현 (python)

재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미한다. 파이썬에서는 스택에 값이 계속 쌓아 메모리가 부족해지는 상황이 발생하는 것을 막고자 어느정도 재귀함수를 출력했다 싶으면 최대 재귀 깊이 초과 메세지를 출력한다. 재귀 함수를 사용하는 문제 풀이에서 무한 호출을 방지하기 위해 재귀 함수의 종료 조건을 반드시 명시해야 한다.

CS/자료구조 2020.12.07

큐 자료구조 이론 및 예제 (python)

큐 자료구조 큐는 먼저 들어온 데이터가 먼저 나가는 형식(선입선출)의 자료구조이다. 입구가 출구가 모두 뚫려 있는 터널과 같은 형태로 시각화 할 수 있다. 대기열이라고 생각하면 쉽다. 큐 구현 방법 1) collection 모듈의 deque 객체 활용 큐는 스택과 같이 리스트로 구현할 수 있다. 하지만 리스트로 사용할 경우 pop(0)은 시간복잡도 O(N)를 가지고 있고, popleft()은 시간복잡도 O(1)을 가지고 있다. 따라서 popleft()를 쓰는게 더 효율적이기 때문에 deque를 사용한다. 시간복잡도는 O(1)이다. deque은 'double-ended queue'의 줄임말로서 스택과 큐를 합친 것과 같이 양방향에서 데이터를 삽입 및 추출할 수 있는 자료형이다. deque은 'deck'(덱..

CS/자료구조 2020.12.07

스택 자료구조 이론 및 예제 (python)

파이썬에서 스택을 구현하려면 리스트 자료형을 사용하자 리스트 자료형은 가장 오른쪽에 원소를 삽입하는 append 메소드와 가장 오른쪽에서 원소를 꺼내는 pop 메소드를 지원한다. 이를 이용해서 스택과 같이 사용할 수 있다. append() 와 pop() 의 시간복잡도는 O(1) 이기 때문에 스택 자료구조를 활용하기 적합하다. 파이썬에서는 표준 라이브러리를 사용할 필요 없이 기본적으로 제공되는 객체에 리스트를 이용해서 바로 스택을 구현하면 된다. stack = [] # 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop(..

CS/자료구조 2020.12.07
반응형