총 75개
-
c언어로 쉽게 풀어쓴 자료구조 개정 3판 4장 연습문제 (해설 포함)2025.05.141. 스택 스택은 후입선출 (Last In First Out, LIFO) 구조를 가지며, 데이터를 삽입하는 push 연산과 삭제하는 pop 연산을 수행할 수 있다. 스택의 top은 일반적으로 -1로 초기화되며, 요소를 삽입할 때마다 top이 1씩 증가한다. 스택이 공백 상태일 때 top은 -1이 되고, 포화 상태일 때 top은 MAX_STACK_SIZE-1이 된다. 스택에서 데이터를 삽입하고 삭제하는 연산의 시간복잡도는 O(1)이다. 후위 표기법에서는 피연산자를 만나면 스택에 삽입하고, 연산자를 만나면 스택에서 2개의 피연산자를 꺼...2025.05.14
-
세종대학교 공개키암호 hash_rsa 과제2025.01.241. rsa_pks_genkey(key_length) rsa에서 입력되는 키 길이(비트) 즉, p*q=n의 비트에 따라 구성되는 절반 비트인 랜덤 소수 p와 q가 결정된다. p와 q는 서로다른 소수로서, 곱에의해 본래 n의 키 길이가 넘지안도록 n의 절반비트인 값으로 범위를 설정해준다. 이 키의 비트값은 길면 길수록 안전하다. 공개키 pk= [n , e, 해시함수] 에서 e는 gcd(e, pi(n))=1을 만족해야만 하는 값을 결정해야한다. 즉, 비밀키 생성을위해 역수가 존재해야하는 형태를 뜻하고, 1<e<pi(n) 범위여야하고 오...2025.01.24
-
방통대 방송대 컴파일러구성 출석수업과제물 A+2025.01.251. 컴파일러 기법과 인터프리터 기법 컴퓨터 구조가 발전함에 따라서 프로그래밍 언어가 저급 언어부터 고급 언어까지 다양한 언어들이 나오고 있다. 고급 언어일수록 컴퓨터가 작성한 코드를 바로 인식하기 어렵기 때문에 이 내용을 번역하는 과정이 필요하다. 이렇게 고급 프로그래밍 언어로 작성된 프로그램을 입력 받아서 기계어로 번역해주는 대표적인 두가지 번역기 방식으로 '컴파일러'와 '인터프리터'가 있다. 이 두 가지 기법은 번역 방식에 따라서 구분할 수 있고 각각의 특징을 가지고 있다. 2. context-free 문법을 이용한 문자열 생...2025.01.25
-
재귀함수와 포인터의 개념 및 활용2025.01.191. 재귀함수 재귀함수는 자기 자신을 다시 호출하는 함수로, 주어진 문제를 더 작은 하위 문제로 분해하여 해결하는 방식으로 동작합니다. 재귀함수는 종료 조건을 명시적으로 정의해야 하며, 이 조건이 충족될 때 함수 호출을 중단하고 반환값을 계산합니다. 재귀함수는 분할 정복 알고리즘, 백트래킹, 데이터 구조 순회, 수학적 계산 및 문제 해결, 문자열과 배열 처리 등 다양한 분야에서 활용됩니다. 2. 포인터 포인터는 메모리의 주소를 저장하는 변수로, C언어에서 메모리 관리와 복잡한 데이터 구조 구현에 중요한 역할을 합니다. 포인터는 메모...2025.01.19
-
프로그래밍 언어의 구성 요소 중 데이터 연산 명령어 타입 설명2025.01.261. 데이터 데이터(data)는 프로그램 언어 구성의 핵심 요소 중 하나로, 컴퓨터가 처리 가능한 형태로 변환된 정보라고 볼 수 있다. 프로그램은 주어진 입력 데이터를 읽어 들여 이를 처리한 후, 결과물을 출력 데이터로 제공한다. 과거에는 포트란(FORTRAN)처럼 주로 과학 계산에서 사용되었기 때문에 숫자 데이터가 중심이 되었지만, 현대에 들어서는 텍스트, 이미지, 비디오 등 다양한 형태의 데이터뿐만 아니라 사용자 이벤트와 같은 추상적인 데이터까지 처리의 범위가 확장되었다. 2. 연산 연산(operation)은 프로그래밍에서 데이...2025.01.26
-
마이크로프로세서 응용회로설계실습 결과보고서62025.01.171. 마이크로프로세서 응용회로 설계 실습 이 보고서는 마이크로프로세서 응용회로 설계 실습 결과를 다룹니다. 주요 내용으로는 argc와 argv를 활용한 LED, Dot Matrix, FND 제어, find_hexa_number() 함수의 비트 연산, logic() 함수의 문자열 숫자 변환 과정, 다양한 명령행 인자 입력에 따른 동작 등이 포함됩니다. 또한 main.c, led.c, dot.c, find.c 파일의 주요 기능과 코드 설명도 제공됩니다. 1. 마이크로프로세서 응용회로 설계 실습 마이크로프로세서 응용회로 설계 실습은 전자...2025.01.17
-
[자료구조] 리스트 활용하여 쇼핑해야 할 목록과 목록 수를 구현한 소스코드2025.05.051. 리스트 이 코드는 리스트 자료구조를 사용하여 쇼핑 목록을 관리하는 프로그램을 구현하고 있습니다. 리스트에 항목을 추가하고, 리스트의 길이를 구하며, 특정 인덱스의 항목을 가져오는 기능을 제공합니다. 이를 통해 사용자가 쇼핑 목록을 효과적으로 관리할 수 있습니다. 2. 구조체 이 코드는 구조체를 사용하여 쇼핑 항목을 표현하고 있습니다. 각 항목은 32자 이내의 문자열로 저장되며, 구조체 배열을 통해 여러 개의 항목을 관리할 수 있습니다. 구조체를 활용하여 데이터를 효율적으로 저장하고 처리할 수 있습니다. 3. 함수 이 코드는 세...2025.05.05
-
시스템 프로그램 어택랩(attack lab) 과제 보고서2025.05.081. Phase_1 Phase_1에서는 getbuf 함수에 오버플로우가 일어날 값을 입력하고 touch1의 주소값을 입력하여 touch1이 실행되게 한다. asm.txt 파일을 확인하여 getbuf와 touch1의 어셈블리 코드를 찾아 필요한 값을 입력한다. 2. Phase_2 Phase_2에서는 touch2 함수를 실행하기 위해 rdi 레지스터에 cookie 값을 넣어주고 touch2 함수로 이동하는 코드를 삽입한다. 이를 위해 gdb를 실행하여 getbuf 직전의 rdi 값을 확인하고, buffer.s 파일을 작성하여 필요한 값...2025.05.08
-
방통대 방송대 C프로그래밍 핵심요양노트 교재요약본 (1장~15장)2025.01.251. C프로그래밍 언어 C프로그래밍 언어는 사람과 컴파일러(번역기)가 이해할 수 있도록 약속된 언어입니다. 컴파일러는 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해하도록 기계어로 번역해주는 번역기이며, 어셈블러는 기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기, 인터프리터는 한 단계씩 기계어로 해석해서 실행하는 언어처리 프로그램입니다. C언어는 UNIX 운영체제 구현에 사용할 목적으로 개발되었으며, 높은 프로그램 이식성, 간단한 문법표현, 저급언어 특성을 가진 고급언어입니다. 2. C프로그램 개발 단계 C프로그램 개발 단...2025.01.25
-
C언어 구조체를 이용한 학생 성적 관리 프로그램2025.11.131. C언어 구조체(Structure) 구조체는 여러 개의 데이터 타입을 하나의 이름으로 묶어서 관리하는 복합 데이터 타입입니다. 이 프로그램에서는 grade 구조체를 정의하여 학생의 학번, 이름, 과목별 성적, 합계, 평균 등의 정보를 하나의 단위로 관리합니다. 구조체 배열을 사용하면 여러 학생의 정보를 효율적으로 저장하고 처리할 수 있습니다. 2. 배열과 반복문을 이용한 데이터 입력 중첩된 for 루프를 사용하여 여러 학생의 정보를 입력받습니다. 외부 루프는 학생 수만큼 반복하고, 내부 루프는 각 학생의 과목별 성적을 입력받습니...2025.11.13
