2024/04/23 6

[DataScience Computing] Stack ADT(Abstract Data Type)

1️⃣ Stack Implementation(Array) ✔ 1. Data top : Stack 항목을 저장하는 list 형태의 Python으로 구현 top의 항목 수는 len(top)을 통해 구할 수 있다. ✔ 2. Operation(구현할 것들) isEmpty() push() pop() peek() display() 2️⃣ Class 형식으로 구현한 Stack 요소들(In Python) class Stack: def __init__( self )#생성자 self.top = []#top이 이제 클래스의 멤버 변수가 된다. def isEmpty( self ) : return len(self.top) == 0 def size( self ) : return len(self.top) def clear( sel..

카테고리 없음 2024.04.23

[DataScience Computing] Set ADT

1️⃣ SET(셋) 자료구조에서 셋(set)이란 유일한 요소들로만 구성된 컬렉션이다. 즉, 셋 안에는 중복된 요소가 존재할 수 없으며, 각 요소는 한 번만 나타난다. 이 특징 때문에 셋은 주로 요소의 존재 여부를 빠르게 테스트하거나 중복을 제거할 때 사용된다. 2️⃣ SET ADT(Abstract Data Type) ✔ 1. Data 동일한 유형의 고유 요소 모음이다. 요소는 비교 가능해야 하지만 순서는 중요하지 않다. ✔ 2. Operations • set(): 새로운 빈 셋을 생성한다. • size(): 셋의 요소 수를 반환한다. • contains(e): 셋에 요소 e가 포함되어 있는지 확인하고 Boolean 값을 확인한다. • insert(e): 셋에 새 요소 e를 삽입한다. e가 이미 존재하는 ..

카테고리 없음 2024.04.23

[DataScience Computing] List ADT

1️⃣ List ADT ✔ 1. Data 동일한 유형의 요소들을 순서대로 모아놓았음 ✔ 2. Operations • List(): 데이터를 추가하기 위해 빈 list를 선언한다. • insert(pos, e): pos 위치에 새 요소 e를 삽입한다. • delete(pos): 위치 pos에서 요소를 제거하고 반환한다. • isEmpty(): 목록이 비었는지 확인한다. • getEntry(pos): pos 위치에 있는 요소를 반환한다. • size(): 목록의 요소 수를 반환한다. • clear(): list를 빈 상태로 초기화한다. • find(item): 목록에서 항목을 검색하고 해당 index를 반환한다. • replace(pos, item): pos 위치의 요소를 item으로 교체한다. • sort..

카테고리 없음 2024.04.23

[DataScience Computing] Recursive Algorithms(재귀 함수)

1️⃣ Recursive Algorithm(재귀 함수) 재귀함수란 알고리즘이나 함수가 문제를 해결하기 위해 자기 자신을 다시 호출하는 기능이다. 정의 자체가 재귀적일 때 적합하다. 2️⃣ 재귀 함수의 종류 ✔ 1. Calculate Factorial(팩토리얼 계산) ✔ 2. Fibonacci Sequence(피보나치 수열) ✔ 그 외 : Binomial Coefficient, Tower of Hanoi, Binary Search … 3️⃣ Factorial Calculation Time Complextiy(시간 복잡도) 우선 팩토리얼 계산의 시간 복잡도는 O(n)이다. 이는 함수가 자기 자신을 정확히 n번 호출하기 때문이다. 팩토리얼 함수 factorial(n)은 n이 0이나 1일 경우에 바로 결과를 반..

카테고리 없음 2024.04.23

[DataScience Computing] Abstract Data Type(추상 데이터 타입)

1️⃣ Abstract Data Type(추상 데이터 타입) Abstract Data Type(추상 데이터 타입)이란 말 그대로 데이터 유형을 추상적(수학적)으로 정의한 것이다. ADT에서는 데이터 작업이 무엇인지 정의하지만 이를 구현하는 방법은 정의하지 않는다. 또한 시스템의 핵심 구조나 동작에 중점을 둔다. 2️⃣ ADT 예제(백팩) Storage for items that allow duplicates. Items are stored individually without a specific order, but comparison between items should be possible. Operations Bag(): 새로운 빈 가방을 생성합니다. insert(e): 가방에 새로운 물건을 추가합니..

카테고리 없음 2024.04.23

[DataScience Computing] Time Complexity

1️⃣ Time Complexity(시간 복잡도)의 정의문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 가르킨 것더 간단하게 설명한다면 '알고리즘의 성능을 설명하는 것'이 되겠다.다른 의미로는 알고리즘을 수행하기 위해 프로세스가 수행해야 하는 연산을 수치화 한것이다.그럼 왜 실행시간이 아닌 연산추치로 판별하는 것일까? 이는 여러 조건(언어, HW 등)에 따라 편차가 달라지기 때문에 명령어의 실행 횟수만을 고려하는 것이다. 2️⃣ Big O 표기법Big O 표기법은 불필요한 연산을 제거하여 알고리즘 분석을 쉽게 하고자 하는 데 그 목적이 있다.Big O로 측정되는 복잡성에는 시간과 공간복잡도가 있는데 시간 복잡도는 입력된 N의 크기에 따라 실행되는 조작의 수를 나타내며, 공간복잡도는 알고리즘이 실행될 ..