All'alba vincerò

At dawn, I will win!

CS/자료구조 3

자료구조: 연결 리스트(Linked List)

연결 리스트(Linked List): 데이터를 분산된 메모리 공간에 저장하고 이들을 서로 연결한 자료구조연결 리스트는 첫 노드의 주소만 알고 있으면 다른 모든 노드에 접근할 수 있음배열의 단점을 해결하기 위해 고안된 구조배열의 단점연속된 메모리 공간이 필요함초기에 크기를 정해야 하기 때문에, 메모리가 낭비될 수 있음 ⇒ 저장하려는 데이터들을 메모리 공간에 분산해서 할당하고, 이들을 서로 연결해주면 됨 ⇒ 노드(Node)를 만들어 연결하여 사용 노드(Node): 데이터와 다음 노드의 주소를 함께 저장하는 연결 리스트의 기본 단위 노드의 구조데이터를 담는 변수 1개 + 다음 노드를 가리키는 변수 1개로 구성데이터가 필요할 때마다 새로운 노드를 만들어서 데이터를 저장하고, 다음 노드를 가리키는 방식으..

CS/자료구조 2025.05.12

자료구조: 배열(Array)

배열(Array): 같은 종류의 데이터를 순서대로 저장하는 자료 구조모든 프로그래밍 언어에서 기본적으로 제공하는 자료 구조 배열의 장단점장점읽기/쓰기와 같은 참조에는 O(1)의 성능을 가짐 단점데이터 크기를 예측하거나 확정하기 어려워 메모리 낭비가 발생할 수 있음데이터의 삽입, 삭제가 비효율적임 배열이 메모리에서 어떤 모습을 하고 있는지int arr[10] = { 1, 2, 3, 4, 5 };운영체제는 메모리에서 숫자 10개가 들어갈 수 있는 연속된 빈 공간을 찾아서 순서대로 1, 2, 3, 4, 5를 할당함할당하지 않은 남은 공간에는 의미 없는 쓰레기 값이 저장되어 있음 배열 요소에 접근하는 방식 운영체제는 배열의 시작 주소(1이 들어간 주소)만 기억함원하는 값에 접근하려면 인덱스로 접근함..

CS/자료구조 2025.05.11

자료구조와 알고리즘 개요, 시간 복잡도, 빅오(Big-O) 표기법

프로그램프로그램은 자료구조와 알고리즘으로 구성됨데이터를 어떻게 저장할지(자료구조), 어떻게 처리할지(알고리즘)를 정의함 자료구조: 데이터가 어떤 구조로 저장되고, 어떻게 사용되는 지를 나타내는 형식가장 단순한 자료구조: 변수숫자나 문자열 등 하나의 값을 저장변수명을 통해 접근배열데이터를 연속적으로 저장각 값을 인덱스를 통해 접근 알고리즘: 문제를 해결하는 명확한 방법자료구조에 따라 알고리즘의 성능이 달라짐같은 문제라도 어떤 자료구조를 사용하느냐에 따라 효율이 다름 시간 복잡도(Time Complexity): 알고리즘이 문제를 해결하는 데 걸리는 시간알고리즘을 평가할 때는 시간을 측정하는 방식이 아닌 코드에서 성능에 영향을 많이 주는 부분을 찾아 실행 시간을 예측함 → 코드에서 성능에 영향을 ..

CS/자료구조 2025.05.08