C 언어(52)
-
C언어 초급 - 14장: 예제 프로젝트 및 실습 (14.3 메모장 프로그램)
14.3 메모장 프로그램동적 메모리 할당과 파일 입출력을 활용하여 메모장 기능을 구현합니다.✅ 프로그램 주요 기능메모 입력 후 파일에 저장파일에 저장된 메모 불러오기기존 메모에 내용 추가메모 삭제 (파일 초기화)동적 메모리 할당을 사용하여 메모 크기 제한 없음1. 동적 메모리 할당을 활용한 메모 저장 기능메모는 길이가 정해져 있지 않기 때문에, 동적 메모리 할당(malloc())을 사용하여 메모 크기를 유동적으로 조절합니다.📌 메모 입력 후 파일에 저장하는 기능#include #include #define FILE_NAME "memo.txt"// 메모 입력 및 파일 저장void saveMemo() { FILE *fp = fopen(FILE_NAME, "w"); // 새로 작성 모드("w") ..
2025.02.25 -
C언어 초급 - 14장: 예제 프로젝트 및 실습 (14.2 학생 성적 관리 프로그램)
14.2 학생 성적 관리 프로그램구조체와 파일 입출력을 활용하여 학생들의 성적을 관리하는 프로그램을 작성합니다.✅ 프로그램 주요 기능학생 정보(이름, 학번, 점수) 입력 및 파일 저장저장된 성적을 파일에서 불러와 출력학생 정보 추가, 수정, 삭제 기능파일을 사용하여 프로그램 종료 후에도 데이터 유지1. 학생 성적을 관리하기 위한 구조체 정의학생 정보를 저장하기 위해 구조체(struct) 를 사용합니다.#include #include #include // 학생 정보를 저장할 구조체 정의typedef struct { char name[30]; // 학생 이름 int id; // 학번 float score; // 성적} Student;#define FILE_NAME "st..
2025.02.25 -
탐색 - 10. 고급 탐색 기법 및 응용 (Advanced Search Techniques and Applications)
📌 10. 고급 탐색 기법 및 응용 (Advanced Search Techniques and Applications)10.1 이진 검색 트리(BST, Binary Search Tree) 소개 및 탐색🔹 이진 검색 트리(Binary Search Tree)란?이진 검색 트리(BST)는 각 노드의 왼쪽 자식은 부모보다 작은 값, 오른쪽 자식은 부모보다 큰 값을 가지는 이진 트리입니다.💡 BST의 특징왼쪽 서브트리의 값 탐색(Search), 삽입(Insert), 삭제(Delete) 연산이 평균적으로 O(log n)의 시간 복잡도를 가짐정렬된 데이터를 빠르게 검색할 수 있음균형이 맞지 않으면(한쪽으로 치우친 경우) 성능이 O(n)까지 감소할 수 있음 → AVL 트리, Red-Black 트리 같은 균형 트리 ..
2025.02.24 -
탐색 - 9. 최단 경로 탐색 알고리즘 (Shortest Path Algorithms)
📌 9. 최단 경로 탐색 알고리즘 (Shortest Path Algorithms)9.1 최단 경로 탐색 알고리즘이란?최단 경로 탐색 알고리즘은 그래프에서 특정 정점에서 다른 정점까지의 최단 거리(최소 비용)를 찾는 알고리즘입니다.이러한 알고리즘은 네트워크 라우팅, 지도 길찾기, AI 경로 탐색 등 다양한 분야에서 활용됩니다.✔ 대표적인 최단 경로 알고리즘다익스트라 알고리즘 (Dijkstra’s Algorithm): 음수 가중치가 없는 그래프에서 최단 경로 탐색벨만-포드 알고리즘 (Bellman-Ford Algorithm): 음수 가중치가 있는 그래프에서도 최단 경로 탐색 가능9.2 다익스트라(Dijkstra) 알고리즘 개념 및 구현🔹 다익스트라(Dijkstra) 알고리즘이란?그래프에서 한 정점에서 모..
2025.02.24 -
탐색 - 8. 너비 우선 탐색(BFS, Breadth First Search)
📌 8. 너비 우선 탐색(BFS, Breadth First Search)8.1 BFS 개념 및 원리🔹 BFS(Breadth First Search)란?BFS(너비 우선 탐색)는 그래프에서 가까운 정점부터 탐색을 진행하는 방식입니다.한 정점에서 출발하여 모든 인접한 정점을 먼저 방문한 후, 다음 깊이로 이동하는 방식입니다.💡 BFS의 특징모든 정점을 한 단계씩 탐색 → 가까운 노드부터 방문최단 경로(Shortest Path) 탐색에 유리 → 최단 거리 문제 해결 가능트리/그래프 탐색, 네트워크 연결 확인, AI 경로 탐색 등에 활용🔹 BFS 탐색 원리시작 정점을 큐(Queue)에 삽입하고 방문 처리큐에서 정점을 꺼내어 인접한 정점들을 방문모든 정점을 방문할 때까지 반복✔ 예제 그래프 1 - 2 ..
2025.02.24 -
탐색 - 7. 깊이 우선 탐색(DFS, Depth First Search)
📌 7. 깊이 우선 탐색(DFS, Depth First Search)7.1 DFS 개념 및 원리🔹 DFS(Depth First Search)란?DFS(깊이 우선 탐색, Depth First Search)는 그래프에서 한 방향으로 최대한 깊이 탐색한 후, 더 이상 갈 곳이 없으면 되돌아가면서 탐색하는 방식입니다.트리나 그래프 탐색에 사용되며, 미로 찾기, 경로 탐색, 위상 정렬 등에 유용합니다.💡 DFS 탐색 원리:시작 정점에서 가장 깊은 곳까지 탐색더 이상 갈 곳이 없으면 되돌아가서 다른 경로 탐색모든 정점을 방문할 때까지 반복🔹 DFS의 동작 방식예제 그래프가 다음과 같다고 가정하겠습니다. 1 - 2 | | 3 - 4 - 5DFS 순서는 다음과 같습니다.✔ 1 → 2 → 4 → 5 → ..
2025.02.24