🗨 개인적인 공부 기록용으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐ 큐는 가장 먼저 들어온 데이터가 가장 먼저 처리되는 선입선출(FIFO) 구조의 자료구조이다. 📌 큐의 정의큐는 선입선출(FIFO: First In, First Out) 구조의 선형 자료구조이다.즉, 가장 먼저 들어온 요소가 가장 먼저 처리되는 방식이다.(나중에 들어온 요소가 먼저 처리되는 `스택(Stack)`과는 반대되는 개념이다.) 큐는 마트에서 계산을 위해 사람들이 줄을 선 모습과 비슷하며, 순차적으로 처리해야 하는 작업에 사용된다. 가장 먼저 줄을 선 사람이 가장 먼저 계산을 하게 될 것이다. 큐의 구조는 아래 그림과 같다. 뒤에서 새로운 요소가 추가되고 앞에서 요소가 하나..
💾 Computer Science/Algorithm
🗨 개인적인 공부 목적으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐ Longest Common Subsequence(LCS) 알고리즘은 두 문자열에서 순서를 유지하면서 공통으로 나타나는 가장 긴 부분 수열을 동적 계획법(Dynamic Programming)으로 찾아내는 알고리즘이다. 📌 Longest Common Subsequence (LCS) vs Longest Common Substring Longest Common Subsequence(최장 공통 부분 수열, LCS)는 두 개의 문자열이나 수열 사이에서 순서를 유지하면서 연속하지 않아도 되는 공통된 부분을 말한다.이 알고리즘과 비슷하면서 다른 Longest Common Substring(최장 공통 문자..
🗨 개인적인 공부 목적으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐ 선형 에라토스테네스의 체는 기존의 에라토스테네스의 체를 개선하여 $O(n)$의 시간 복잡도로 소수를 찾는 알고리즘이다.이는 각 숫자를 가장 작은 소인수로 한 번만 처리하여 불필요한 계산을 줄였다. 에라토스테네스의 체에 대한 글 [Algorithm] 에라토스테네스의 체(Sieve of Eratosthenes) : 소수를 구하는 고효율 알고리즘 [Algorithm] 에라토스테네스의 체(Sieve of Eratosthenes) : 소수를 구하는 고효율 알고리즘🗨 개인적인 공부 목적으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐ 에라토스테네스의 체는 작은 ..
🗨 개인적인 공부 목적으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐ 에라토스테네스의 체는 작은 수부터 시작하여 소수의 배수를 지워나가는 방식으로 소수를 찾는 고효율적인 알고리즘이다. 📌 에라토스테네스의 체 (Sieve of Eratosthenes)고대 그리스의 수학자인 에라토스테네스가 발견한 소수를 찾는 가장 빠르고 쉬운 방법이다. ⏱ $\mathbf{O(n\;log\;log\;n)}$ 의 시간 복잡도를 가진다. 아래 동작 원리 부분을 보면 알겠지만, 지워진 부분도 차례가 되면 불필요하게 탐색하기 때문에 이를 보완한 방법도 존재한다.이는 기존의 에라토스테네스의 체를 개선한 "선형 에라토스테네스의 체"로, 시간 복잡도를 $O(n)$으로 줄인 알고리즘이다...
🗨 개인적인 공부 기록용으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐리스트는 동적 크기를 가지며 순차적으로 데이터를 저장하는 자료구조이다. 📌 리스트의 정의리스트는 선형 자료구조의 한 종류이며, 배열과 유사하게 데이터를 연속적으로 저장하는 자료구조이다. 리스트는 구체적인 형태에 따라 배열 리스트(Array List)나 연결 리스트(Linked List)로 나뉜다.배열 리스트(Array List)는 배열을 기반으로 구현된 리스트고, 연결 리스트(Linked List)는 각 요소가 다른 요소에 대한 참조(포인터)를 가지며, 동적으로 크기를 조절할 수 있는 리스트다. 📌 1) 배열 리스트(Array List)동적 배열(Dynamic Array)이..
🗨 개인적인 공부 기록용으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐ 스택은 마지막에 들어간 데이터가 가장 먼저 나오는 후입선출(LIFO) 구조의 자료구조이다. 📌 스택의 정의스택은 후입선출(LIFO: Last In, First Out) 구조의 선형 자료구조이다.즉, 가장 마지막에 추가된 요소가 가장 먼저 제거되는 방식이다.(가장 먼저 들어온 데이터가 가장 먼저 처리되는 `큐(Queue)`와 반대되는 개념이다.) 스택은 물건을 쌓는 방식과 비슷하여 요소를 넣고(push) 빼는(pop) 작업이 맨 위에서만 일어난다.스택의 중간에서는 요소를 삭제할 수 없다. 스택의 주요 연산은 다음과 같다.`Push`: 스택의 맨 위에 새로운 요소를 추가한다.`Po..
🗨 개인적인 공부 기록용으로 정리한 내용입니다. 잘못된 내용에 대한 피드백은 언제나 감사합니다 :) ⭐배열은 동일한 데이터 타입의 요소들이 연속된 메모리 위치에 저장되는 자료구조이다. 📌 배열의 정의배열은 선형 자료구조이며, 대부분의 프로그래밍 언어에서 기본적으로 제공되는 만큼 가장 기초적인 자료구조이다. 그럼, 배열이란 무엇일까?배열은 동일한 데이터 타입의 요소들을 1열로 나열, 즉 연속된 메모리 위치에 저장하는 구조이다. 순차적으로 저장되기 때문에, 인덱스 번호가 배열의 시작점으로부터 값이 저장되어 있는 상대적인 위치를 뜻한다.예를 들어, 인덱스 번호가 0인 arr[0]은 arr배열의 첫 번째 주소 즉, 기본 주소를 뜻한다.또, 인덱스 번호가 1인 arr[1]은 arr배열의 기본 주..
🗨 개인적인 공부 목적으로 정리한 내용입니다. ⭐자료구조는 데이터를 효율적으로 저장하고, 관리하고, 사용할 수 있도록 조직화하는 방법이나 체계를 의미한다. 자료구조(Data Structure)는 컴퓨터 과학에서 매우 중요한 개념이다. 자료구조가 다양한 알고리즘의 성능과 효율성을 크게 좌우하기 때문이다. 따라서, 다양한 프로그램 설계나 문제 해결을 위해서 적합한 자료구조를 선택해야 하므로 각 자료구조에 대해 잘 알아두어야 한다. 📌 자료구조란? 간단하게 표현하자면, 자료구조는 데이터를 메모리에 저장할 때 데이터의 순서나 위치 관계를 정하는 것을 말한다. 우리가 일상에서 물건들을 정리하는 방법을 떠올려보자.예를 들어, 여러 개의 칸으로 나누어져 있는 책장에 책을 정리하는 상황을 가정해 보..