studyHard
article thumbnail
트리(tree)
알고리즘/자료구조 2023. 4. 25. 11:49

트리의 개념 트리는 노드로 이루어진 자료 구조 트리는 하나의 루트 노드를 갖는다 루트 노드는 0개 이상의 자식 노드를 갖는다 그 자식 노드 또한 0개 이상의 자식 노드를 갖고, 이는 반복적으로 정의된다 노드들과 노드들을 연결하는 간선(edge)들로 구성되어있다 트리에는 사이클(cycle)이 존재할 수 없다 노드들은 특정 순서로 나열될 수도 있고 아닐수도 있다 각 노드는 부모 노드로의 연결이 있을 수도 있고 없을 수도 있다 각 노드는 어떤 자료형으로도 표현 가능하다 let Node = function (value) { this.value = value; this.children = []; }; 루트 노드(root node) 부모가 없는 노드, 트리는 하나의 루트 노드만을 가진다 단말 노드(leaf node..

article thumbnail
시간 복잡도
알고리즘/자료구조 2023. 4. 20. 14:03

시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 시간 복잡도 시간 복잡도는 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미한다. 작성 방법에 따라 걸리는 시간이 달라지며, 시간이 적게 걸리는 것이 좋은 소스이다. 시간 복잡도에는 빅-오 표기법이라는 개념이 나온다. 예를 들어, 동전을 던져 뒷면이 나올 확률을 얘기 할 때 운이 좋으면 1번에 뒷면이 나오지만 운이 안 좋다면 n번 만큼 동전을 던져야 하는 경우가 발생한다. 이 최악의 경우를 계산하는 방식을 빅-오(Big-O) 표기법이라 부른다. O(1) Constant Time (상수) 입력 데이터 크기에 상관없이 언제나 일정한 시간이 걸리는 알고리즘. ..

article thumbnail
스택 / 큐 자료구조, 재귀 함수, 유클리드 호제법
알고리즘/자료구조 2023. 4. 11. 00:13

스택 자료구조 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조이다. 입구와 출구가 동일한 형태로 스택을 시각화할 수 있다. 큐 자료구조 먼저 들어온 데이터가 먼저 나가는 형식(선입선출)의 자료구조이다. 큐는 입구와 출구가 모두 뚫려 있는 터널과 같은 형태로 시각화할 수 있다. 재귀 함수 재귀 함수(Recursive Function)란 자기 자신을 다시 호출하는 함수를 의미한다. 단순한 형태의 재귀 함수 예제 '재귀 함수를 호출합니다.'라는 문자열을 무한히 출력한다. 어느 정도 출력하다가 최대 재귀 깊이 초과 메시지가 출력된다. function recursiveFunction() { console.log("재귀 함수를 호출합니다."); recursiveFunction(); } 재귀 함수의 종..