본문 바로가기
코딩테스트/코딩테스트(Python)

[코딩테스트] Python - 자료구조

by huginn30 2025. 2. 9.
반응형

배열

 

리스트

더보기
# List
lst = []
lst.append(val)
lst.extend(otherList)
lst.insert(idx, val) 
lst.pop(idx)

/* ETC */
lst.sort(reverse=False) # 원본 리스트 정렬
sorted(lst)             # 정렬된 리스트 복사본 생성
lst.copy()              # 리스트 얕은 복사
lst.remove(val)         # 앞에서부터 일치하는 값 1개 삭제 없는 경우 예외 발생

 

스택

- FILO(First In Last Out) 구조

더보기
# Stack
stack = []
stack.append(val)  # 맨 뒤에 값 삽입
stack.pop()        # 맨 뒤 값 반환 및 삭제
stack[-1]          # 맨 뒤 값 반환
len(stack)         # 원소 개수

 

더보기
from collections import deque

# Queue
queue = deque(["Eric", "John", "Michael"])
queue.append(val)           # 맨 뒤에 값 추가 
queue.popleft()             # 맨 앞 값 반환 및 삭제
queue[0]                    # 맨 앞 값 반환
len(queue)                  # 원소 개수

 

- 양방향 삽입/방출 구조

더보기
from collections import deque

# Deque
deque = deque()
deque.append(val)       # 맨 뒤에 값 추가
deque.appendleft(val)   # 맨 앞에 값 추가
deque.pop()             # 맨 뒤 값 반환 및 삭제
deque.popleft()         # 맨 앞 값 반환 및 삭제


# ETC
deque.insert(index, val)    # 해당 index에 값 추가
deque.remove(val)           # 맨 앞부터 val와 같은 값 1개 삭제. 없는 경우 예외 발생
deque.index(val)            # 맨 앞부터 시작해서 val와 동일한 값에 해당하는 인덱스 반환. 없는 경우 예외 발생
deque.clear()               # 길이를 0으로 하는 초기화
deque.copy()                # 얕은 복사
deque.count(val)            # val와 같은 값 개수
deque.extend(list)          # 맨 뒤에 list 값들 추가
deque.extendleft(list)      # 맨 앞에 list 값들 추가
deque.reverse()             # 순서를 뒤집고 None 반환
deque.rotate(n)             # 양수일 경우 오른쪽으로 n만큼 회전

 

해시(딕셔너리)

- key와 value 구조

더보기
# HashMap
map = dict()
map[key] = val              # key와 val 추가. key가 있다면 값 변경
map.get(key, defaultVal)    # key에 해당하는 값 반환. 없다면 defaultVal 반환
del map[key]                # key에 해당하는 값 제거. 없다면 예외 발생


# ETC
key in map         # key가 있다면 True
key not in map     # key가 없다면 True
map.items()        # key, value 쌍을 반환
map.keys()         # key들의 집합
map.values()       # value들의 집합
map.pop(key)       # key에 해당하는 값 반환 및 제거
map.item()         # LIFO 순서로 반환
map.update(dict)   # key와 value 쌍들 추가

 

집합(셋)

더보기
# Set
s = set()
s.add(val)        # 값을 추가
s.remove(val)     # 값을 제거. 없다면 예외 발생
s <= other        # 집합s의 모든 원소가 other에 포함된다면 True 반환
s < other         # 집합s가 other의 진부분집합이라면 True 반환
s >= other        # other의 모든 원소가 s에 포함된다면 True 반환
s > other         # other가 집합s의 진부분집합이라면 True 반환
s.disjoint(other) # 집합들의 교집합이 공집합인 경우 True 반환
s | other         # 두 집합의 합집합 반환
s & other         # 두 집합의 교집합 반환
s - other         # 집합s에 있고 other에 없는 집합(차집합) 반환
s ^ other         # 집합s와 other에 중 1곳에만 포함된 원소들의 집합


# ETC
s.discard(val)  # 값을 제거
s.clear()       # 값을 모두 제거
val in s        # val가 집합에 포함된다면 True
val not in s    # val가 집합에 포함되지 않는다면 True

 

우선순위큐(힙)

더보기
import heapq

# Priority Queue(Heap): MinHeap으로 동작
pq = []
heapq.heapify(list)          # heap으로 변경
heapq.heappush(heap, val)    # 값 추가
heapq.heappop(heap)          # 가장 작은 원소 반환 및 제거
pq[0]                        # 가장 작은 원소 반환

 

트리

 

그래프

 

반응형