일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- C언어
- BSD소켓
- DNS
- ip
- group by
- web-proxy lab
- 정글#정글사관학교#3기#내일#기대#설렘#희망#노력
- strcat
- mysql
- Error Code: 1055
- https://firecatlibrary.tistory.com/49?category=874970
- https://coding-factory.tistory.com/641
- strcpy
- TCP
- HTTP
- SQL
- Today
- Total
목록전체 글 (43)
매일을 설렘으로
typedef 함수 (형 재정의) 특정 element에 대해 미리 type (int, long, double, pointer 등) 지정해서 사용하는 함수이다. 문법은 다음과 같다. typedef type element 장점 : 이식성과 수정 효율성이 좋다. 예를 들어, 프로그래밍 컨셉이 바껴 특정 element의 type을 int형 -> double형으로 변경할때 // typedef 사용 예시 typedef int key_t; // 포인터형도 typedef를 사용해서 *없이 선언할 수 있다. typedef int* intPtr; intPtr p, q; 열거형(enum) 변수가 갖는 값에 의미를 부여해 프로그램 가독성을 높임 컴파일러는 열거형 멤버들을 정수형 상수로 인식 (문자도 indexing으로 사용 ..
C언어 공부 Linux/gcc 사용법 익히기 RB tree 이론 malloc/free 사용법 파악 RB tree 구현 linked list를 이용한 list, queue, tree 구현 등 몇 가지 예제를 풀어가며 숙달하기를 추천합니다.
C를 활용한 stack 자료 구조 구현 전체 구조 #include #include #define SIZE 100 // stack struct 구성 typedef struct stack { // arr[SIZE], top int arr[SIZE]; int top; } stack; // init 함수 void init(stack *s) { s -> top = -1; // stack에 초기상태 -1, Push해서 data 들어오면 0부터 index시작 } // is_empty 함수 구성 int is_empty(stack *s) { if (s->top == -1) return 1; return 0; } // is_full 함수 구성 int is_full(stack *s){ if (s->top == SIZE - ..
비트 마스크 (BitMask)라는건 알고리즘이라기보다 하나의 테크닉이다. 보통 DFS, BFS 알고리즘을 사용할 때, visit 방문 처리하는 이력을 남겨 거슬러 올라가는 행위를 하지 않게 한다. 이를 하나의 정수로 가능하게 한다. 보통 문제를 풀 때 DP에 남길 때 방문 이력까지 한 번에 넘겨야 할 때, 좋은 방식인 것 같다. 관련 예제로, 백준 2098 외판원 순회가 있다. visit | (1
문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일2일3일4일5일6일7일TiPi 3 5 1 1 2 4 2 10 20 10 20 15 40 200 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일에 잡혀있는 상담은 총 2일이 걸리며, 받을 수 있는 금액은 15이다. 상담을 ..
문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 ..
이진 트리 (Bianary Tree) 배열, 링크드리스트, 스택, 큐와 같이 일직선 개념의 자료구조가 아니라 비선형 자료구조인 부모-자식 개념을 가지는 자료구조이다. 데이터를 트리 구조로 배열 할 때 트리 맨 위에있는 노드를 루트 노드라고합니다. 전체 트리에 대해 하나의 루트 만있을 수 있습니다. 루트 노드를 제외한 모든 노드에는 노드 위쪽에 하나의 가장자리가 있습니다. 이를 부모 노드라고합니다. 부모 코드 아래의 노드를 자식 노드라고합니다. 각 상위 노드에는 최대 2 개의 하위 노드가있을 수 있습니다. 왼쪽 자식 노드와 오른쪽 자식 노드라고합니다. 자식 노드가없는 노드를 리프 노드. 이진 검색 트리 (binary search tree)란, 이진 탐색 트리는 기본적인 특징은 이진 트리와 같지만 하나 다른..
그래프로 탐색하는 방법에는 두 가지가 있다. DFS, BFS. 1) 깊이 우선 탐색 (DFS) 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식을 말한다. - 구현 : 스택 또는 재귀함수로 구현 -> 둘 중에 어떤 구조로 짜는지에 대한 장단점은 무엇일까? 2) 너비 우선 탐색 (BFS) 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법으로, 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법입니다. - 구현 : 큐를 이용해서 구현 3) 활용 문제 유형 및 응용 - 그래프의 모든 정점을 방문하는 것이 중요한 문제 => DFS, BFS 둘 다 동일 (∵모든..