본문 바로가기

공부기록

(37)
[CS 전공지식 노트] 네트워크 (1) 면접을 위한 cs 전공지식 노트를 읽고 정리하였다. 이번 학기에 배운 개념을 정리 하기 위해 네트워크, 운영체제, 데이터베이스, 자료구조 위주로 정리할 것이다. CHAPTER 2 네트워크 네트워크의 기초 네트워크 : 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어 네트워크란 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체 노드 : 서버, 라우터, 스위치 등 네트워크 장치 링크 : 유선 또는 무선 좋은 네트워크 : 많은 처리량을 처리할 수 있으며, 지연시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 처리량 (throughput) : 링크를 통해 전달되는 단위 시간당 데이터양 단위 : bps(bits per second) 초당 전송 또는 수신되는 비트 수 ..
모든 개발자를 위한 HTTP 웹 기본 지식 강의 정리 1-2 인프런 김영한님 강의를 듣고 정리한 글입니다! 1. internet-network IP(인터넷 프로토콜) 지정한 IP 주소(ip address) 에 데이터 전달 패킷이라는 통신 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라지면? 패킷이 순서대로 안오면? 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? (내가 인터넷 게임도 하면서 음악도 듣고.. 하면 이건 어떻게 구분되지?) 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워크 인터페이스 계층 (이 부분은 컴퓨터네트워크 정리 다시하면서 나중에 자세히 포스팅..
영리한 프로그래밍을 위한 알고리즘 강좌 - Ch3.레드블랙트리 12. 레드블랙트리 – 레드-블랙 트리 - 이진탐색트리의 일종 - 균형잡힌 트리 : 높이가 O(logn) - SEARCH, INSERT, DELETE 연산을 최악의 경우에도 O(logn) 시간 - 각 노드의 하나의 키(key), 왼쪽자식(left), 오른쪽 자식(right) 그리고 부모노드(p)의 주소를 저장 - 자식노드가 존재하지 않을 경우 NIL 노드라고 부르는 특수한 노드가 있다고 가정 - 따라서 모든 리프노드는 NIL노드라고 가정 - 노드들은 내부노드와 NIL 노드로 분류 레드-블랙 트리 : 정의 - 다음의 조건을 만족하는 이진탐색트리 : 1. 각 노드는 red 혹은 black이고, 2. 루트노드는 black이고, 3. 모든 리프노드(즉, NIL노드)는 black이고, 4. red노드의 자식노드들..
영리한 프로그래밍을 위한 알고리즘 강좌 - Ch2.이진검색트리 10. 트리와 이진트리 – 트리(Tree) 계층적인 구조를 표현 (ex. 조직도, 디렉토리와 서브디렉토리 구조, 가계도) 트리는 노드(node)들과 노드들을 연결하는 링크(link)들로 구성됨 용어 부모-자식 관계 형제관계 - 루트노드를 제외한 트리의 모든 노드들은 유일한 부모 노드를 가짐 리프(leaf node)노드 : 자식이 없는 노드 조상-자손 관계 부트리 트리에서 어떤 한 노드와 그 노드의 자손들로 이루어진 트리를 부트리(subtree)라고 부른다 - 트리의 기본적인 성질 노드가 N개인 트리는 항상 N-1개의 링크(link)를 가진다 트리에서 루트에서 어떤 노드로 가는 경로는 유일하다. 또한 임의의 두 노드간의 경로도 유일하다(같은 노드를 두 번 이상 방문하지 않는다는 조건하에) – 이진트리(Bi..
영리한 프로그래밍을 위한 알고리즘 강좌 - Ch1.정렬 #8~11 섹션 1. 정렬 7. 정렬의 lower bound 저번에 배웠던 정렬 알고리즘! nlogn 이 최선일까? 결론 : O(nlogn) 보다 더 작아질 수는 없다(comparison sort 인 경우에는!) 정렬 알고리즘 - Bubble sort - Insertion sort - Selection sort simple, slow - Quicksort - Merge sort - Heap sort fast - Radix sort O(N) – Comparision sort - 데이터들간의 상대적 크기관계만을 이용해서 정렬하는 알고리즘 - 따라서 데이터들간의 크기 관계가 정의되어 있으면 어떤 데이터에든 적용가능(문자열, 알파벳, 사용자 정의 객체 등) - 버블 소트, 삽입 정렬, 합병 정렬, 퀵소트, 힙정렬 등 - ..
자료구조+알고리즘 4일차 오늘은 스택에 대해 배웠다. 스택(stack) 4일차 (23.08.01) 이진탐색 복습 스택 함수 구현 +) 스택 함수 응용해봄 스택(stack)은 데이터를 일시적으로 저장하기 위한 자료구조 중에 하나인데 후입선출 구조를 띰. Last In First Out 즉 마지막에 넣어진 값이 첫번째로 나가는 형태이고.. 큐랑은 많이 다르지 데이터를 넣는 작업 : push 데이터를 빼내는 작업 : pop 데이터의 꼭대기 : top 1. 이진 탐색 복습 #include #include int binary_search_desc(const int *arr, int size, int value) { int left = 0; int right = size - 1; while (left value) { // 내림차순의 경우 ..
영리한 프로그래밍을 위한 알고리즘 강좌 - Ch1.정렬 #1~7 섹션 1. 정렬 3. 기본적인 정렬 알고리즘 정렬 알고리즘 - Bubble sort - Insertion sort - Selection sort simple, slow - Quicksort - Merge sort - Heap sort fast - Radix sort O(N) – Selection Sort 각 루프마다 - 최대 원소를 찾는다 - 최대 원소와 맨 오른쪽 원소를 교환한다 - 맨 오른쪽 원소를 제외한다 하나의 원소만 남을 때까지 위 루프를 반복 selectionSort(A[], n) // 배열 A[1...n]을 정렬한다. { for last A[k] 와 A[last]의 값을 교환 ---3 } } 실행시간 : ①의 for 루프는 n-1번 반복 ②에서 가장 큰 수를 찾기 위한 비교 횟수 : n-1,..
자료구조+알고리즘 2일차 오늘은 간단하게 별출력 사각형출력, 배열에 동적할당하는 것에 대해 공부하였다. 어제와 마찬가지로 굉장히 쉬웠음!! 다시 복습한다는 마인드로 정리하고 공부하는 중이다. 2일차 (23.07.28) 구구단표 별 출력 배열 생성 + 요소 입력 받기 요소 갯수 출력(sizeof) 동적할당 malloc, calloc 4 요소 갯수 출력을 동적할당 받아서해보기 사각형 출력 1.구구단표 #include int main(void) { for (int i = 1; i