본문 바로가기

분류 전체보기161

[자료구조] 연결 리스트(Linked List) 순차적으로 연결된 공간에 데이터를 나열하는 배열과 달리 연결 리스트는 떨어진 곳에 있는 데이터를 연결해 관리하는 자료구조 노드(Node): (데이터값, 포인터)로 구성 포인터(Pointer): 각 노드에서 연결된 노드(next, prev)와의 연결 정보를 가지고 있는 공간 장점: 미리 데이터 공간을 할당하지 않아도 된다. 단점: 연결을 위한 데이터 공간이 추가로 필요하기 때문에 저장공간 효율이 높지 않다. 연결 정보를 찾는 시간이 필요하므로 접근 속도가 느리다. 중간에 있는 데이터 삭제 시, 앞뒤 데이터 연결을 재구성해야 한다. Python의 List에서 연결 리스트의 기능을 모두 지원한다. Python에서 연결 리스트를 구현할 때는 보통 Class를 활용한다. # 연결 리스트 구현 class Node:.. 2021. 3. 4.
[자료구조] 스택(Stack) LIFO(Last In First Out) 방식 가장 나중에 넣은 데이터를 가장 먼저 빼내는 자료구조 스택은 한 쪽에서만 자료를 넣거나 빼는 구조이다. push()를 통해 데이터를 스택에 넣고, pop()으로 스택에서 데이터를 꺼낸다. # Python 리스트의 메소드로 스택 사용 list_stack = list() # append로 push list_stack.append(1) list_stack.append(2) list_stack >> [1, 2] # 나중에 넣은 데이터 먼저 출력 list_stack.pop() >> 2 스택은 프로세스 실행 구조의 기본이 된다. 장점: 구조가 단순해 구현이 쉽고, 데이터 저장/읽기 속도가 빠르다. 단점: 스택 생성 시 데이터 최대 개수를 정해야 한다. 저장 공간이 낭.. 2021. 3. 4.
[자료구조] 큐(Queue) FIFO(First In First Out, 선입선출) 방식의 자료구조 가장 먼저 넣은 데이터를 가장 먼저 꺼낸다. 큐에 데이터를 넣는 것을 Enqueue라고 하고, 큐에서 데이터를 꺼내는 것을 Dequeue라고 한다. queue_list = list() # Enqueue와 Dequeue 구현 def enqueue(data): queue_list.append(data) def dequeue(): data = queue_list[0] del queue_list[0] return data Python에서는 Queue 라이브러리를 활용해 다양한 큐 자료구조를 사용할 수 있다. Queue(): 일반적인 큐 자료구조 import queue data = queue.Queue() # 데이터 넣기 data.put(1).. 2021. 3. 4.
[자료구조] 배열(Array) 같은 타입을 가진 데이터들을 나열하고, 데이터마다 인덱스를 갖도록 구성한 자료구조 Python에서는 List가 배열 기능을 제공 # list로 배열 구현 data_array = [1, 2, 3] data_array >> [1, 2, 3] # 2차원 배열 data_array = [[1, 2], [3, 4], [5, 6]] data_array >> [[1, 2], [3, 4], [5, 6]] print(data_array[0][0]) >> 1 print(data_array[1][2]) >> 4 print(data_array[2][0]) >> 5 배열은 같은 타입의 데이터를 효율적으로 관리하기 위해 사용되며, 데이터를 순차적으로 저장한다. 장점: 인덱스 번호로 빠른 접근이 가능하다. 단점: 데이터 추가/삭제가.. 2021. 3. 3.
continue / pass / break / return의 차이 가끔 헷갈려서 정리하기 continue continue의 아래 행을 수행하지 않고 반복문의 다음 턴으로 넘어간다. pass 실행할 코드가 없음을 의미한다. break 해당 break를 감싼 가장 작은 반복문을 탈출한다.(반복문 종료) return 인수 없이 사용하면 함수 실행을 종료하고 함수를 호출한 곳으로 돌아간다. 2021. 3. 2.