총 93개
-
C로 배우는 자료구조 6장 연습문제 - 큐와 데크2025.11.161. 큐(Queue)의 개념과 특성 큐는 FIFO(First In First Out) 선입선출 구조의 자료구조로, front에서는 삭제, rear에서는 삽입이 일어난다. 일상생활에서 줄 서기, 택시 정거장 등에서 찾을 수 있다. 선형 큐에서는 rear가 마지막 인덱스에 도달하면 포화 상태가 되는 문제가 발생하며, 이를 해결하기 위해 원형 큐를 사용한다. 원형 큐의 공백 상태는 front == rear이고, 포화 상태는 front == (rear + 1) mod n이다. 2. 원형 큐(Circular Queue)의 구현 원형 큐는 선...2025.11.16
-
큐와 스택의 구조와 삽입/삭제 연산자 비교2025.01.191. 큐의 구조와 연산자 큐는 데이터의 삽입과 삭제가 각각 한 쪽 끝과 다른 쪽 끝에서 이루어지는 선형 자료구조입니다. 큐는 FIFO(First-In, First-Out) 원칙을 따르며, Enqueue() 함수를 사용하여 데이터를 삽입하고 Dequeue() 함수를 사용하여 데이터를 삭제합니다. 큐에서는 front 포인터와 rear 포인터를 사용하여 삽입과 삭제 연산을 관리합니다. 2. 스택의 구조와 연산자 스택은 데이터의 삽입과 삭제가 같은 쪽 끝에서 이루어지는 선형 자료구조입니다. 스택은 LIFO(Last-In, First-Out...2025.01.19
-
HackerSchool FTZ 레벨별 상세 풀이 및 보안 공격 기법2025.11.161. 버퍼 오버플로우(Buffer Overflow) 공격 버퍼 오버플로우는 할당된 메모리 크기보다 큰 데이터를 입력하여 인접한 메모리를 덮어쓰는 공격 기법입니다. FTZ 레벨 9-19에서 주로 다루어지며, strcpy, gets, fgets 등의 위험한 함수를 통해 발생합니다. 공격자는 스택의 반환 주소(RET)를 조작하여 임의의 코드를 실행하거나 쉘을 획득할 수 있습니다. 메모리 구조 분석과 쉘 코드 삽입을 통해 권한 상승을 달성합니다. 2. Return-to-Library(RTL) 공격 및 함수 체이닝 RTL 공격은 버퍼 오버플...2025.11.16
-
컴퓨터 내부의 자료표현 방법과 선형구조의 자료의 삽입과 삭제 방식2025.05.061. 데이터 구조 데이터 구조란 데이터를 효율적으로 활용하기 위해 데이터의 특성에 맞게 데이터를 분류, 정리, 저장, 처리하는 모든 업무를 말합니다. 컴퓨터에서 데이터를 처리하려면 먼저 컴퓨터에 데이터를 표현해야 컴퓨터가 처리할 수 있습니다. 컴퓨터는 이렇게 표현된 데이터를 특정 프로그램에서 처리합니다. 2. 단순 구조 단순 구조는 True/False, 정수, 실수, 문자열 등 컴퓨터에서 기본으로 제공되는 데이터 유형입니다. 3. 선형 구조 선형 구조는 파일 시스템 또는 데이터베이스에 레코드를 하나만 링크하는 형식입니다. 이것은 배...2025.05.06
-
데이터의 자료구조 중에서 스택과 큐를 비교하여 설명하고, 두 구조를 구현해 보시오2025.01.221. 스택 자료구조의 개념과 특성 스택은 선형 자료구조 중 하나로, 데이터를 후입선출(LIFO, Last In First Out) 방식으로 저장하고 관리한다. 데이터는 한쪽 끝에서만 삽입되고 삭제되며, 마지막에 삽입된 데이터가 가장 먼저 제거된다. 스택은 메모리 호출 관리, 문자열 역순 출력, 수식 계산 등에 널리 사용된다. 2. 큐 자료구조의 개념과 특성 큐는 선형 자료구조 중 하나로, 데이터를 선입선출(FIFO, First In First Out) 방식으로 저장하고 관리한다. 데이터는 한쪽 끝에서 삽입되고 반대쪽 끝에서 제거된다...2025.01.22
-
자료구조 종류와 각 종류를 설명하시오2025.01.191. 배열 (Array) 배열은 컴퓨터 과학 분야에서 가장 기본적이면서도 중요한 자료구조 중 하나로, 동일한 데이터 타입의 요소들을 순차적으로 나열하여 저장하는 방식이다. 각 요소는 고유한 인덱스를 가지며, 이 인덱스를 통해 특정 요소에 빠르게 접근할 수 있다. 배열은 데이터를 연속된 메모리 공간에 저장하기 때문에 인덱스 계산만으로도 빠른 접근이 가능하며, 이로 인해 상수 시간 복잡도(O(1))로 요소에 접근할 수 있는 장점을 가지고 있다. 2. 연결 리스트 (Linked List) 연결 리스트는 자료를 노드(Node)들의 집합으로...2025.01.19
-
재귀적 성질과 재귀적 알고리즘의 특징2025.01.281. 재귀적 알고리즘의 개념 재귀적 알고리즘은 자기 자신을 반복적으로 호출하여 문제를 해결하는 알고리즘을 말한다. 이는 기본적으로 하나의 큰 문제를 여러 개의 작은 문제로 나누고, 이 작은 문제들을 해결하면서 최종적인 답을 도출하는 구조를 가진다. 재귀 알고리즘의 기본 구조는 기저 조건(Base case)과 재귀 단계(Recursive step)로 구성된다. 2. 재귀적 알고리즘과 비재귀적 알고리즘의 차이점 재귀적 알고리즘은 문제를 직관적이고 간결하게 표현할 수 있지만, 재귀 호출이 반복되면서 스택 메모리를 사용하므로 문제의 크기가...2025.01.28
-
자료구조 스택 배열로 구현한 소스 코드2025.05.051. 배열 스택 이 코드는 학생 정보를 저장하고 관리하는 배열 기반 스택 구현을 보여줍니다. 스택의 기본 연산인 push, pop, peek, display 등이 구현되어 있습니다. 스택의 최대 크기는 100으로 정의되어 있으며, 학생 정보는 student_no, name, address 필드로 구성됩니다. 이 코드를 통해 배열을 이용한 스택 자료구조의 기본적인 동작을 이해할 수 있습니다. 1. 배열 스택 배열 스택은 데이터 구조의 한 종류로, 가장 최근에 추가된 데이터를 가장 먼저 꺼내는 LIFO(Last-In-First-Out)...2025.05.05
-
큐와 스택의 구조 비교: 삽입과 삭제 연산2025.11.151. 스택(Stack) 자료구조 스택은 후입선출(LIFO: Last-In-First-Out) 방식의 자료구조로, 가장 최근에 삽입된 데이터가 가장 먼저 삭제된다. 삽입 연산은 push()라는 이름으로 스택의 맨 위에서 실행되고, 삭제 연산은 pop()이라는 이름으로 동일하게 맨 위에서 실행된다. 또한 top() 연산자를 사용하여 스택의 맨 위 항목을 확인할 수 있다. 스택은 함수 호출 스택, 괄호 검사, 역폴란드 표기법 등 다양한 분야에서 활용된다. 2. 큐(Queue) 자료구조 큐는 선입선출(FIFO: First-In-First-...2025.11.15
-
순차 자료구조와 연결 자료구조의 비교 및 구현2025.11.161. 순차 자료구조 순차 자료구조는 데이터를 메모리상의 연속적인 위치에 저장하는 구조로, 배열 형태로 저장되며 각 데이터 요소는 고유한 인덱스를 통해 식별됩니다. 인덱스를 통한 직접 접근(무작위 접근)이 가능하여 데이터 접근 속도가 빠르고, 메모리 단편화를 최소화할 수 있습니다. 하지만 중간에 데이터를 삽입하거나 삭제할 때 나머지 데이터를 이동시켜야 하므로 비효율적입니다. 데이터 크기가 고정되어 있거나 변경이 거의 없는 상황에서 효과적이며, 빠른 접근이 필요한 경우에 적합합니다. 2. 연결 자료구조 연결 자료구조는 데이터 요소가 메...2025.11.16
