https://www.youtube.com/playlist?list=PLsMufJgu5933ZkBCHS7bQTx0bncjwi4PK외대 신찬수 교수님께서 유튜브에 올려주신 강의를 들으며 자료구조와 알고리즘에 대해 공부하려고 한다.코테 문제를 풀때 너무 베이스없이
코드는 실행환경에 따라 성능이 달라지므로 가상환경을 만들어서 실행한다.가상 컴퓨터 + 가상 언어 + 가상 코드가상 컴퓨터는 Turing machine이라고 불리며 폰 노이만이 발명한 RAM ( Random Access Machine) 이 있다.RAM은 CPU, Memo
자료구조 알고리즘의 시간복잡도는 원래 모든 입력에 대해 기본연산의 횟수를 더하여 평균을 구해야 한다.하지만 입력의 개수가 무한대라서 현실적으로 불가능하기때문에 가장 안좋은 입력에 대한 기본연산 횟수를 측정한다그러면 어떤 입력의 수행시간도 그거보다는 작다.arrayMax
BigO 표기법은 최악의 경우에 나타나는 수행시간을 계수 생략하고 최고차항만으로 간단하게 표기하는 방식이다.T1, T2는 각각 2n, 4n이므로 BigO로 표기하면 T1(n) = O(n), T2(n) = O(n)이고,T3는 최고차항이 3/2 \* n^2 이므로 BigO
순차적 자료구조에는 배열과 리스트가 있다. 리스트는 파이썬에만 있는 구조이다. C언어 배열의 한칸은 4byte로 구성되어 있고 A[n]의 주소 = A[0]의 주소 + n * 4 bytes 이다. 배열: 어떤 특정위치에 있는 값을 상수시간 내에 읽어올 수 있고,
순차적 자료구조1\. 배열, 리스트index로 임의의 원소에 접근한다 -> O(1)Stack, Queue, Dequeue제한된 접근(삽입, 삭제)만 허용stack : LIFO ( Last In First Out)queue : FIFO ( First In First Ou
스택의 예로는 계산기가있다.계산기 입력에서 숫자는 피연산자(operand)이고, 수식 기호는 연산자(operator)이다.피연산자와 연산자를 합쳐서 token 이라고 하며 의미가 있는 단 이다.이항연산자(binary operator)는 항이 두개가 있어야 하는 연산자이
infix -> postfix 변환 방법 왼쪽괄호 ( 는 우선순위가 가장 낮다. 오른쪽활호 ) 는 우선순위가 가장 높다. 결과값은 리스트 ouststack에 넣고 연산자는 스택 opstack에 넣었다가 oustack으로 옮긴다. 피연산자가 나오면 바로 outst
큐는 FIFO ( First In First Out) 규칙의 순차적 자료구조이다.enqueue는 stack의 append에 해당하는 삽입으로 가장바깥에 들어간다.dequeue는 stack의 pop에 해당하는 삭제로 가장 안쪽에 있는것을 없앤다.stack은 말미잘, qu
연결리스트(Linked List)는 한방향과 양방향이 있다.연결리스트는 노드(node)끼리 연결된 형태로 되어있는데, 이 노드 안에 key와 link가 있고, key는 데이터값이다.가장 첫 노드를 head node라고 하고 맨 마지막 노드는 link가 없어 None을