알고리즘/이론

[1] 스택이란? 스택은 쌓는다라는 의미로 먼저 들어온 데이터가 마지막에 제일 나중에 들어온 데이터가 처음으로 꺼낼 수 있는 구조를 말합니다. 이를 LIFO(Last In First Out) 구조라고 합니다.✏️ Note 스택을 삽입하는 연산을 PUSH, 스택에 있는 데이터를 꺼내는 행위를 POP이라고 부릅니다.[2] 스택의 ADT(Abstract Data Type)ADT는 구현하는 구조(Stack)에 대해서 구현 방법을 명시하지 않고 어떠한 데이터의 구조와 연산들을 하는지에 대한 설명(명세)을 말합니다. 스택의 연산에는 push, pop, isFull, isEmpty, top과 같은 연산들이 존재합니다. 아래의 설명을 보도록 하겠습니다.push()push는 스택에 데이터를 넣는 연산을 수행합니다.pop..
[1] 배열 개념배열은 순서대로 원소들이 연속적인 형태로 구성되어 있는 구조이며, 여러 타입으로 지정되어 효율적으로 관리를 할 수 있습니다.[1-1] 배열 선언배열의 경우, 정수형 변수를 여러 개 선언해서 관리하기보다는 정수형 배열을 선언해서 관리하는 게 더욱 효율적입니다. 비교하는 예시를 아래와 같은 예시로 보도록 하겠습니다.// ...int main() { // 인트형 변수 5개 선언 int a1 = 1; int a2 = 2; int a3 = 3; int a4 = 4; int a5 = 5; cout [1-2] 배열과 차원배열은 2차원 배열과 그 이상의 다차원 배열을 이용하기도 하지만 컴퓨터 메모리 구조는 1차원으로 이루어져 있기에 다차원 배열은 컴퓨터 메모리의 1..
[1] 시간 복잡도란?시간 복잡도란, 알고리즘의 성능을 나타내는 지표로써 입력 크기에 따른 연산 횟수를 의미합니다. 시간 복잡도가 낮으면 입력 크기가 주어졌을 때 해결하는 속도가 빠르고, 높으면 해결하는 속도가 느려집니다. 따라서 시간 복잡도는 낮을수록 좋습니다.[1-1] 알고리즘 수행 시간을 측정하는 방법알고리즘 수행 시간을 측정하는 방법은 절대 시간 측정 방법과 시간 복잡도를 측정하는 방법이 존재합니다.(1) 절대시간 측정 방법절대 시간을 측정하는 방법은 입력 값에 따른 시간을 측정하면 됩니다. 아래 예시와 같이 linearSearch에서 입력값에 따른 시간을 측정하여 절대 시간을 측정합니다. 하지만, 코드를 실행하는 환경에 따라서 달라질 수 있으므로 잘 사용하지 않는 편입니다.int main() {..
cothi
'알고리즘/이론' 카테고리의 글 목록