내 맘대로 공부
article thumbnail
[자료구조] Tree
CS/자료구조 2023. 3. 23. 16:16

📌 Tree (트리) 자료구조 Tree는 이름 그대로 나무의 형태를 가지고 있다. 정확히는 나무를 거꾸로 뒤집어 놓은 듯한 모습인데, 그래프의 여러 구조 중 단방향 그래프의 한 구조로, 하나의 뿌리로부터 가지가 사방으로 뻗은 형태가 나무와 닮았다고 해서 트리 구조라고 부른다. 마치 가계도와 흡사해 보이는 이 트리 구조는 데이터가 바로 아래에 있는 하나 이상의 데이터에 한 개의 경로와 하나의 방향으로만 연결된 계층적 자료구조이다. 데이터를 순차적으로 나열시킨 선형 구조가 아니라, 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조이다. 트리 구조는 계층적으로 표현이 되고, 아래로만 뻗어나가기 때문에 사이클(cycle)이 없다. 💭 Whta is Cycle ? 더보기 시작 노드에서 출발해 ..

article thumbnail
[ 자료구조 ] Queue
CS/자료구조 2023. 3. 18. 20:22

📌 Queue ( 큐 ) 큐(Queue)는 '줄을 서서 기다리다, 대기행렬' 이라는 뜻을 가지고 있다. 실생활에서의 큐를 찾아보자면 가장 쉽게 대기줄을 생각할 수 있다. 대기줄에서 가장 중요한 것은 '순서'이다. 톨게이트에 진입하는 차량을 생각해보면 도착한 순서대로 톨게이트를 나가는 모습이 바로 큐이다. 이 때 톨게이트 자체가 큐를 의미하고, 각 차량들이 데이터를 의미한다. Queue의 구조 자료구조 Queue는 실생활 예시만 봐도 Stack과 반대되는 개념인 것을 알 수 있을 것이다. 한 곳으로만 데이터 입출력이 이루어지는 것이 Stack이었다면, Queue는 두 개의 방향으로 입출력이 '순서대로' 이루어진다. 먼저 들어간 데이터(data)가 먼저 나오는 FIFO(First In First Out) 혹..

article thumbnail
[자료구조] Stack
CS/자료구조 2023. 3. 18. 16:51

📌 Stack ( 스택 ) Stack은 '쌓다, 쌓이다, 포개지다 ' 의 의미를 갖고 있다. 이 의미 그대로 스택은 데이터를 순서대로 쌓는 자료구조이다. 실생활에서 쉽게 예시를 찾아볼 수 있는데, 바로 프링글스 통이다. 우리가 프링글스 통에 과자를 넣는다고 할 때, 맨 위에 뚫려있는 구멍을 통해 과자를 순서대로 넣고 뺄 수 있다. 이 때 프링글스 통을 스택, 과자를 데이터로 비유할 수 있다. Stack의 구조 과자를 순서대로 넣었을 때, 가장 나중에 넣은 과자가 통의 가장 상단에 위치하기 때문에 과자를 꺼내는 경우에 가장 나중에 넣었던, 프링글스 통 상단에 위치한 과자를 먼저 뺄 수 있을 것이다. 자료구조 Stack의 특징은 입력과 출력이 하나의 방향, 즉 스택의 최상단에서만 이루어지는 제한적 접근 이런..

article thumbnail
최대공약수 & 최소공배수 (feat. 유클리드 호제법)
CS/Algorithm 2023. 1. 6. 15:05

📌 최대공약수 (GCD) 두 수(num1, num2)의 약수 중 공통의 가장 큰 정수 ex) ( 3, 12 ) = 3 JS로 최대공약수를 가장 쉽게 구하는 법은 2부터 증가하면서 두 수 중 가장 작은 수 까지 반복하는 것이다. function getGcd(num1, num2) { let gcd = 1; for (let i = 2; i GCD(24, 16) = GCD(16, 8) = GCD(8, 0) = 8 ex02) num1 = 30, num2 = 4 -> GCD(30,4) = GCD(4, 2) = GCD(2, 0) = 2 ex03) num1 = 54, num2 = 9 -> GCD(54,9) = GCD(9, 0) = 9 이때, num2가 0이 될 때까지 반복하다 보면 결국 num1의 값이 두 수의 최대공..