1. Queue?- 큐(Queue)는 선입선출(FIFO, First In First Out) 원칙을 따르는 선형 자료구조이다.- 먼저 들어온 데이터가 먼저 나가는 방식으로 작동된다.- 큐는 한 쪽 끝에서 데이털르 추가하고, 반대쪽 끝에선 데이터를 제거하는 특징이 있다.- 흔히 줄 서기나, 은행 창구에서의 대기열로 예를 들 수 있다.2. 큐의 구조- Front(앞쪽) : 데이터를 꺼내는 쪽이다. 가장 먼저 들어온 요소가 위치한 곳 - Rear(뒤쪽) : 데이터를 추가하는 쪽이다. 큐의 마지막 요소가 위치한 곳 3. 큐의 메소드3.1. enqueue(데이터 추가):- 데이터를 큐의 끝(Rear)에 추가하는 연산 3.2. dequeue(데이터 제거):- 큐의 앞(Front)에 있는 데이터를 제거하고 반환하는 ..
1. Intro- 스택은 후입선출(LIFO, Last In First Out) 구조의 선형 자료구조이다.- 데이터를 한 쪽 끝에서만 추가하거나 삭제할 수 있는 특징을 가지며, 보통 접시를 쌓아 올리는 것과 유사한 방식- 즉, 스택에서 가장 나중에 삽입된 요소가 가장 먼저 제거된다. 2. 스택의 주요 특징- 후입선출(LIFO) : -- 가장 마지막에 들어온 데이터가 가장 먼저 나간다.-- 스택의 구조적 특성 때문에 데이터를 삽입하거나 삭제할 수 있는 위치는 Top으로 고정된다. - 한 방향에서만 접근 가능:-- 스택은 끝부분에서만 데이터를 접근할 수 있기 때문에 중간에 삽입이나 삭제를 할 수 없다. 3. 스택의 메소드3.1. push()- 스택의 끝, 즉 Top 위치에 데이터를 추가하는 연산이다. - 데이..
0. Intro- 자료구조에서 꼭 알아야하는 연결리스트에 대해 알아보자.- 해당 게시글에서는 단방향 연결리스트만 서술하고자 한다.1. 리스트- 리스트(list | 파이썬 내장 리스트와 다름)는 순서가 있는 데이터를 나열한 자료구조- 실생활 예) 학생 명단, 상점의 판매 품목, 실시간 급상승 검색어... 2. 노드- 연결리스트를 구성하는 각각의 원소- 데이터와 포인터(reference)를 가진다. 2.1. 노드 클래스 구현class Node: def __init__(self,data=None,next = None): self.data = data self.next = next #ex 1n0 = Node('A')n1 = Node('B')n2 = Node('C')n0.next =..
0. Intro- 해당 게시글에서는 어떤 배열의 최솟값과 최댓값을 구할 수 있는 알고리즘을 구현하고자 한다.- 다른 알고리즘 게시글에 비해 난이도가 상당히 쉬우니까 가볍게 보고 가자. 1. minimum- 최솟값을 구하는 코드를 구현해보면 다음과 같다.def minimum(arr): min = arr[0] for i in arr[1:]: if min > i: min = i return min - 배열을 한번씩 전부 돌면서 최솟값을 갱신하는 알고리즘이다.- 시간복잡도는 O(N)이 된다. 2. maximum- 최댓값을 구하는 코드를 구현하면 다음과 같다.- 최솟값을 구하는 코드와 크게 다르지 않는다.def maximum(arr): max = arr[0] ..